优化朋友圈

This commit is contained in:
2026-04-06 03:36:41 +08:00
parent dd6745fe24
commit 26fb271a54
2 changed files with 206 additions and 197 deletions
@@ -40,7 +40,7 @@ class FriendCircleController extends BaseController{
'top_unread_items' =>[], 'top_unread_items' =>[],
'unread_item_ids' =>[], 'unread_item_ids' =>[],
'unread_count' =>0, 'unread_count' =>0,
'settings' => Db::name('friend_circle_setting')->where('user_id',$user_id)->order('id','desc')->findOrEmpty() 'settings' => Db::name('user_extend')->where('user_id',$user_id)->findOrEmpty()
]; ];
return $this->success('ok',$json); return $this->success('ok',$json);
}else{ }else{
@@ -52,7 +52,7 @@ class FriendCircleController extends BaseController{
$res = $this->newcount($request); $res = $this->newcount($request);
$response = $res->rawBody(); $response = $res->rawBody();
$json = json_decode($response,true); $json = json_decode($response,true);
$json['data']['settings'] = Db::name('friend_circle_setting')->where('user_id',$user_id)->order('id','desc')->findOrEmpty(); $json['data']['settings'] = Db::name('user_extend')->where('user_id',$user_id)->findOrEmpty();
// [ // [
// 'bg' => '', // 'bg' => '',
// ]; // ];
@@ -425,11 +425,8 @@ class FriendCircleController extends BaseController{
return $this->fail( $res); return $this->fail( $res);
} }
Db::name('friend_circle_setting')->replace()->insert([ Db::name('user_extend')->where('user_id',$user->id)->save([
'user_id' => $user->id, 'moments_banner' => $res[0]['file_name']
'bg' => $res[0]['file_name'],
'allow_days'=>0,
'created_at'=>0
]); ]);
//$result->ss = cdnurl($result->url); //$result->ss = cdnurl($result->url);
//P($result); //P($result);
+202 -190
View File
@@ -1,5 +1,6 @@
<?php <?php
namespace app\api\controller; namespace app\api\controller;
use app\model\User as UserModel; use app\model\User as UserModel;
use app\model\FriendCircle as FriendCircleModel; use app\model\FriendCircle as FriendCircleModel;
use app\model\FriendCircleLike as FriendCircleLikeModel; use app\model\FriendCircleLike as FriendCircleLikeModel;
@@ -12,64 +13,74 @@ use hg\apidoc\annotation as Apidoc;
/** /**
* 新朋友圈 * 新朋友圈
*/ */
class MomentsController extends BaseController{ class MomentsController extends BaseController
/** {
* 不需要鉴权的方法
* @var array
*/
public $noNeedAuth = ['*']; public $noNeedAuth = ['*'];
/**
* 无需登录及鉴权的方法
* @var array
*/
public $noNeedLogin = []; public $noNeedLogin = [];
public $user_display_fields = 'id,userID,nickname,avatar'; public $user_display_fields = 'id,userID,nickname,avatar';
/**
* 朋友圈设置
* @param string $userID 用户userID,可选,不填就查询自己
* @return void
*/
function info(Request $request): Response{
$userID = Input('userID');
if($userID){
$user_id = \support\Encrypt::userIDDecode($userID);
$json= [
'top_unread_items' =>[],
'unread_item_ids' =>[],
'unread_count' =>0,
'settings' => Db::name('user_extend')->where('user_id',$user_id)->field('moments_allow_view_days,moments_banner')->findOrEmpty()
];
return $this->success('ok',$json);
}else{
$user = \support\Jwt::getUser();
if (!$user) {
return $this->fail('请先登录');
}
$userID = $user->userID;
$res = $this->newcount($request);
$response = $res->rawBody();
$json = json_decode($response,true);
$json['data']['settings'] = Db::name('user_extend')->where('user_id',$user->id)->field('moments_allow_view_days,moments_banner')->findOrEmpty();
$top_unread_items = FriendCircleModel::whereIn('id',$json['data']['unread_item_ids']) protected function getUserSettings(int $user_id): array
->with(['user' => function($query) { {
$query->field($this->user_display_fields); $result = Db::name('user_extend')
}]) ->where('user_id', $user_id)
->order('id', 'desc') ->field('moments_allow_view_days,moments_banner')
->limit(0,3) ->findOrEmpty();
->select(); return $result;
$json['data']['top_unread_items'] = $top_unread_items ?: []; }
$res->withBody(json_encode($json));
return $res; protected function processAvatar($data): void
{
if (is_array($data)) {
if (!empty($data['avatar'])) {
$data['avatar'] = cdnurl($data['avatar']);
}
} elseif (is_object($data) && !empty($data->avatar)) {
$data->avatar = cdnurl($data->avatar);
} }
} }
function info(Request $request): Response
{
$userID = Input('userID');
if ($userID) {
$user_id = \support\Encrypt::userIDDecode($userID);
$json = [
'top_unread_items' => [],
'unread_item_ids' => [],
'unread_count' => 0,
'settings' => $this->getUserSettings($user_id)
];
return $this->success('ok', $json);
}
$user = \support\Jwt::getUser();
if (!$user) {
return $this->fail('请先登录');
}
$res = $this->newcount($request);
$response = $res->rawBody();
$json = json_decode($response, true);
$json['data']['settings'] = $this->getUserSettings($user->id);
$top_unread_items = FriendCircleModel::whereIn('id', $json['data']['unread_item_ids'])
->with(['user' => function ($query) {
$query->field($this->user_display_fields);
}])
->order('id', 'desc')
->limit(0, 3)
->select();
$json['data']['top_unread_items'] = $top_unread_items ?: [];
$res->withBody(json_encode($json));
return $res;
}
/** /**
* @Apidoc\Title("列表") * @Apidoc\Title("列表")
* @Apidoc\Method("GET") * @Apidoc\Method("GET")
* @Apidoc\Query("userID", type="string", require=false, desc="用户userID,不传则获取所有") * @Apidoc\Query("userID", type="string", require=false, desc="用户userID,不传则获取所有")
* @Apidoc\Query("page", type="int", require=true, desc="页码",default=1) * @Apidoc\Query("page", type="int", require=true, desc="页码", default=1)
* @Apidoc\Query("limit", type="int", require=true, desc="分页大小",default=10) * @Apidoc\Query("limit", type="int", require=true, desc="分页大小", default=10)
*/ */
function list(Request $request): Response function list(Request $request): Response
{ {
@@ -78,97 +89,84 @@ class MomentsController extends BaseController{
$page = (int)Input('page', 1); $page = (int)Input('page', 1);
$limit = (int)Input('limit', 10); $limit = (int)Input('limit', 10);
$userID = Input('userID'); $userID = Input('userID');
$query = FriendCircleModel::where('status', 1) $query = FriendCircleModel::where('status', 1)
->with(['user' => function($query) { ->with(['user' => function ($query) {
$query->field($this->user_display_fields); $query->field($this->user_display_fields);
}]) }])
->order('created_at', 'desc'); ->order('created_at', 'desc');
if($userID){
// 如果指定了用户ID,只获取该用户的朋友圈 if ($userID) {
$user_id = \support\Encrypt::userIDDecode($userID); $user_id = \support\Encrypt::userIDDecode($userID);
$query->where('user_id',$user_id); $query->where('user_id', $user_id);
}else{ } else {
$current_userID = \support\Encrypt::userIDencode($current_user_id); $current_userID = $current_user_id > 0 ? \support\Encrypt::userIDencode($current_user_id) : '';
$query->whereIn('user_id',$this->getFriendUserIds($current_userID)); $friendIds = $this->getFriendUserIds($current_userID);
if (empty($friendIds)) {
return $this->success('ok', []);
}
$query->whereIn('user_id', $friendIds);
} }
$list = $query->paginate([ $list = $query->paginate([
'list_rows' => $limit, 'list_rows' => $limit,
'page' => $page, 'page' => $page,
]); ]);
if(!$userID){
cache('circle_last_read_id_'.$current_user_id,$list[0]['id']); if (!$userID && $list->count() > 0) {
cache('circle_last_read_id_' . $current_user_id, $list[0]['id']);
} }
$list->each(function ($item) use ($current_user_id) {
// 处理每条朋友圈数据
$items = $list->items();
$list->each(function($item) use ($current_user_id){
// 获取点赞列表
$likes = Db::name('friend_circle_like')->alias('f') $likes = Db::name('friend_circle_like')->alias('f')
->join('user u','u.id=f.user_id') ->join('user u', 'u.id=f.user_id')
->where('f.circle_id', $item->id) ->where('f.circle_id', $item->id)
->field('f.*,u.userID,u.avatar,u.nickname') ->field('f.*,u.userID,u.avatar,u.nickname')
->order('f.created_at', 'desc') ->order('f.created_at', 'desc')
->limit(20) ->limit(20)
->select(); ->select();
$likes = $likes ? $likes->toArray() : []; $likes = $likes ? $likes->toArray() : [];
// 检查当前用户是否已点赞
$is_liked = false; $is_liked = false;
if ($current_user_id > 0) { if ($current_user_id > 0) {
$is_liked = null !== array_find($likes,function($item)use($current_user_id){ $is_liked = null !== array_find($likes, function ($like) use ($current_user_id) {
return $item['user_id'] == $current_user_id; return $like['user_id'] == $current_user_id;
}); });
// FriendCircleLikeModel::where('circle_id', $item->id)
// ->where('user_id', $current_user_id)
// ->count() > 0;
} }
// 获取评论列表(最新10条)
$comments = FriendCircleCommentModel::where('circle_id', $item->id) $comments = FriendCircleCommentModel::where('circle_id', $item->id)
->where('status', 1) ->where('status', 1)
->with(['user' => function($query) { ->with(['user' => function ($query) {
$query->field($this->user_display_fields); $query->field($this->user_display_fields);
}, 'replyUser' => function($query) { }, 'replyUser' => function ($query) {
$query->field($this->user_display_fields); $query->field($this->user_display_fields);
}]) }])
->order('created_at', 'asc') ->order('created_at', 'asc')
->limit(10) ->limit(10)
->select(); ->select();
// 格式化数据
$item->is_liked = $is_liked; $item->is_liked = $is_liked;
$item->likes = $likes; $item->likes = $likes;
$item->comments = $comments; $item->comments = $comments;
// 处理图片URL
if (!empty($item->files)) { if (!empty($item->files)) {
$files = is_array($item->files) ? $item->files : json_decode($item->files, true); $files = is_array($item->files) ? $item->files : json_decode($item->files, true);
if (is_array($files)) { $item->files = is_array($files) ? array_map('cdnurl', $files) : [];
$item->files = array_map(function($file) {
return cdnurl($file);
}, $files);
} else {
$item->files = [];
}
} else { } else {
$item->files = []; $item->files = [];
} }
// 处理用户头像
if ($item->user && $item->user->avatar) { if ($item->user && $item->user->avatar) {
$item->user->avatar = cdnurl($item->user->avatar); $item->user->avatar = cdnurl($item->user->avatar);
} }
// 处理点赞用户头像 foreach ($item->likes as &$like) {
foreach ($item->likes as $like) { if (!empty($like['avatar'])) {
if ($like->user) { $like['avatar'] = cdnurl($like['avatar']);
$like->avatar = cdnurl($like->avatar);
} }
} }
unset($like);
// 处理评论用户头像
foreach ($item->comments as $comment) { foreach ($item->comments as $comment) {
if ($comment->user && $comment->user->avatar) { if ($comment->user && $comment->user->avatar) {
$comment->user->avatar = cdnurl($comment->user->avatar); $comment->user->avatar = cdnurl($comment->user->avatar);
@@ -177,16 +175,17 @@ class MomentsController extends BaseController{
$comment->replyUser->avatar = cdnurl($comment->replyUser->avatar); $comment->replyUser->avatar = cdnurl($comment->replyUser->avatar);
} }
} }
return $item; return $item;
}); });
return $this->success('ok', $list); return $this->success('ok', $list);
} }
/** /**
* @Apidoc\Title("最近更新的数量") * @Apidoc\Title("最近更新的数量")
* @Apidoc\Method("POST") * @Apidoc\Method("POST")
* @Apidoc\Param("last_see", type="string",require=false, desc="最近查看的时间戳") * @Apidoc\Param("last_see", type="string", require=false, desc="最近查看的时间戳")
*/ */
function newcount(Request $request): Response function newcount(Request $request): Response
{ {
@@ -194,28 +193,28 @@ class MomentsController extends BaseController{
if (!$user) { if (!$user) {
return $this->fail('请先登录'); return $this->fail('请先登录');
} }
$user_id = $user->id; $user_id = $user->id;
$circle_last_read_id = cache('circle_last_read_id_'.$user_id) ?: 0; $circle_last_read_id = cache('circle_last_read_id_' . $user_id) ?: 0;
$userID = \support\Encrypt::userIDencode($user_id); $userID = \support\Encrypt::userIDencode($user_id);
// 统计从上次查看时间到现在新增的朋友圈数量
$unread_item_ids = FriendCircleModel::where('status', 1) $unread_item_ids = FriendCircleModel::where('status', 1)
->whereIn('user_id',$this->getFriendUserIds($userID)) ->whereIn('user_id', $this->getFriendUserIds($userID))
->where('id', '>', $circle_last_read_id) ->where('id', '>', $circle_last_read_id)
->order('id', 'desc') ->order('id', 'desc')
->column('id'); ->column('id');
return $this->success('ok', [ return $this->success('ok', [
'unread_count' => count($unread_item_ids), 'unread_count' => count($unread_item_ids),
'unread_item_ids'=>$unread_item_ids 'unread_item_ids' => $unread_item_ids
]); ]);
} }
/** /**
* @Apidoc\Title("发布朋友圈") * @Apidoc\Title("发布朋友圈")
* @Apidoc\Method("POST") * @Apidoc\Method("POST")
* @Apidoc\Param("body", type="string",require=false, desc="内容") * @Apidoc\Param("body", type="string", require=false, desc="内容")
* @Apidoc\Param("files", type="string",require=false, desc="图片列表(JSON数组)") * @Apidoc\Param("files", type="string", require=false, desc="图片列表(JSON数组)")
*/ */
function create(Request $request): Response function create(Request $request): Response
{ {
@@ -223,18 +222,16 @@ class MomentsController extends BaseController{
if (!$user) { if (!$user) {
return $this->fail('请先登录'); return $this->fail('请先登录');
} }
$body = $request->post('content', ''); $body = $request->post('content', '');
$files = $request->post('files', ''); $files = $request->post('files', '');
$address = $request->post('address', ''); $address = $request->post('address', '');
$releaseType = $request->post('releaseType', ''); $releaseType = $request->post('releaseType', '');
// 验证内容
if (empty($body)) { if (empty($body)) {
return $this->fail('什么内容都木有啊'); return $this->fail('什么内容都木有啊');
} }
// 处理图片列表
$files_array = []; $files_array = [];
if (!empty($files)) { if (!empty($files)) {
if (is_string($files)) { if (is_string($files)) {
@@ -242,18 +239,16 @@ class MomentsController extends BaseController{
} elseif (is_array($files)) { } elseif (is_array($files)) {
$files_array = $files; $files_array = $files;
} }
if (!is_array($files_array)) { if (!is_array($files_array)) {
return $this->fail('图片列表格式错误'); return $this->fail('图片列表格式错误');
} }
// 限制图片数量
if (count($files_array) > 9) { if (count($files_array) > 9) {
return $this->fail('最多只能上传9张图片'); return $this->fail('最多只能上传9张图片');
} }
} }
// 创建朋友圈动态
$circle = FriendCircleModel::create([ $circle = FriendCircleModel::create([
'user_id' => $user->id, 'user_id' => $user->id,
'releaseType' => $releaseType, 'releaseType' => $releaseType,
@@ -262,16 +257,16 @@ class MomentsController extends BaseController{
'address' => $address, 'address' => $address,
'status' => 1, 'status' => 1,
]); ]);
return $this->success('发布成功', ['id' => $circle->id,'data' => $circle]); return $this->success('发布成功', ['id' => $circle->id, 'data' => $circle]);
} }
/** /**
* @Apidoc\Title("发表评论") * @Apidoc\Title("发表评论")
* @Apidoc\Method("POST") * @Apidoc\Method("POST")
* @Apidoc\Param("body", type="string",require=true, desc="内容") * @Apidoc\Param("body", type="string", require=true, desc="内容")
* @Apidoc\Param("id", type="int",require=true, desc="朋友圈动态ID") * @Apidoc\Param("id", type="int", require=true, desc="朋友圈动态ID")
* @Apidoc\Param("reply_userID", type="string",require=false, desc="回复的用户userID(回复评论时使用)") * @Apidoc\Param("reply_userID", type="string", require=false, desc="回复的用户userID(回复评论时使用)")
*/ */
function comment(Request $request): Response function comment(Request $request): Response
{ {
@@ -279,41 +274,39 @@ class MomentsController extends BaseController{
if (!$user) { if (!$user) {
return $this->fail('请先登录'); return $this->fail('请先登录');
} }
$body = $request->post('body', ''); $body = $request->post('body', '');
$circle_id = (int)$request->post('id'); $circle_id = (int)$request->post('id');
$reply_userID = (int)$request->post('reply_userID'); $reply_userID = $request->post('reply_userID', '');
if (empty($body)) { if (empty($body)) {
return $this->fail('评论内容不能为空'); return $this->fail('评论内容不能为空');
} }
if ($circle_id <= 0) { if ($circle_id <= 0) {
return $this->fail('朋友圈动态ID错误'); return $this->fail('朋友圈动态ID错误');
} }
// 检查朋友圈动态是否存在
$circle = FriendCircleModel::where('id', $circle_id) $circle = FriendCircleModel::where('id', $circle_id)
->where('status', 1) ->where('status', 1)
->find(); ->find();
if (!$circle) { if (!$circle) {
return $this->fail('朋友圈动态不存在'); return $this->fail('朋友圈动态不存在');
} }
// 如果回复评论,检查被回复的用户是否存在
$reply_user_id = 0; $reply_user_id = 0;
if ($reply_userID ) { if (!empty($reply_userID)) {
$reply_user_id = \support\Encrypt::userIDDecode($reply_userID); $reply_user_id = (int)\support\Encrypt::userIDDecode($reply_userID);
} }
if ($reply_user_id>0 ) {
if ($reply_user_id > 0) {
$reply_user = UserModel::where('id', $reply_user_id)->find(); $reply_user = UserModel::where('id', $reply_user_id)->find();
if (!$reply_user) { if (!$reply_user) {
return $this->fail('被回复的用户不存在'); return $this->fail('被回复的用户不存在');
} }
} }
// 创建评论
$comment = FriendCircleCommentModel::create([ $comment = FriendCircleCommentModel::create([
'circle_id' => $circle_id, 'circle_id' => $circle_id,
'user_id' => $user->id, 'user_id' => $user->id,
@@ -321,24 +314,25 @@ class MomentsController extends BaseController{
'body' => $body, 'body' => $body,
'status' => 1, 'status' => 1,
]); ]);
// 更新朋友圈评论数
$circle->comment_count = FriendCircleCommentModel::where('circle_id', $circle_id) $circle->comment_count = FriendCircleCommentModel::where('circle_id', $circle_id)
->where('status', 1) ->where('status', 1)
->count(); ->count();
$circle->save(); $circle->save();
$comment->user = Db::name('user')->field($this->user_display_fields)->where('id',$comment->user_id)->find();
$comment->replyUser=null; $comment->user = Db::name('user')->field($this->user_display_fields)->where('id', $comment->user_id)->find();
if($comment->reply_user_id){ $comment->replyUser = null;
$comment->replyUser = Db::name('user')->field($this->user_display_fields)->where('id',$comment->reply_user_id)->find(); if ($comment->reply_user_id) {
$comment->replyUser = Db::name('user')->field($this->user_display_fields)->where('id', $comment->reply_user_id)->find();
} }
return $this->success('评论成功', $comment); return $this->success('评论成功', $comment);
} }
/** /**
* @Apidoc\Title("点赞") * @Apidoc\Title("点赞")
* @Apidoc\Method("POST") * @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="朋友圈动态ID") * @Apidoc\Param("id", type="int", require=true, desc="朋友圈动态ID")
*/ */
function like(Request $request): Response function like(Request $request): Response
{ {
@@ -346,112 +340,130 @@ class MomentsController extends BaseController{
if (!$user) { if (!$user) {
return $this->fail('请先登录'); return $this->fail('请先登录');
} }
$circle_id = (int)$request->post('id', 0); $circle_id = (int)$request->post('id', 0);
if ($circle_id <= 0) { if ($circle_id <= 0) {
return $this->fail('朋友圈动态ID错误'); return $this->fail('朋友圈动态ID错误');
} }
// 检查朋友圈动态是否存在
$circle = FriendCircleModel::where('id', $circle_id) $circle = FriendCircleModel::where('id', $circle_id)
->where('status', 1) ->where('status', 1)
->find(); ->find();
if (!$circle) { if (!$circle) {
return $this->fail('朋友圈动态不存在'); return $this->fail('朋友圈动态不存在');
} }
// 检查是否已点赞
$like = FriendCircleLikeModel::where('circle_id', $circle_id) $like = FriendCircleLikeModel::where('circle_id', $circle_id)
->where('user_id', $user->id) ->where('user_id', $user->id)
->find(); ->find();
if ($like) { if ($like) {
// 取消点赞
$like->delete(); $like->delete();
$circle->like_count = max(0, $circle->like_count - 1); $circle->like_count = max(0, $circle->like_count - 1);
$circle->save(); $circle->save();
return $this->success('取消点赞成功', ['is_liked' => false]); return $this->success('取消点赞成功', ['is_liked' => false]);
} else {
// 添加点赞
FriendCircleLikeModel::create([
'circle_id' => $circle_id,
'user_id' => $user->id,
]);
$circle->like_count = $circle->like_count + 1;
$circle->save();
return $this->success('点赞成功', ['is_liked' => true]);
} }
FriendCircleLikeModel::create([
'circle_id' => $circle_id,
'user_id' => $user->id,
]);
$circle->like_count = $circle->like_count + 1;
$circle->save();
return $this->success('点赞成功', ['is_liked' => true]);
} }
protected function getFriendUserIds($userID):array{
protected function getFriendUserIds($userID): array
{
if (!$userID) { if (!$userID) {
return []; return [];
} }
$cache_key = 'friend_id_list_'.$userID;
$cache_key = 'friend_id_list_' . $userID;
$result = cache($cache_key) ?: []; $result = cache($cache_key) ?: [];
if(count($result) === 0){
if (count($result) === 0) {
$res = request()->IM->friend->getFriendList($userID); $res = request()->IM->friend->getFriendList($userID);
$friendsInfo = $res['friendsInfo']; $friendsInfo = $res['friendsInfo'] ?? [];
foreach($friendsInfo as $k=>$v){ foreach ($friendsInfo as $v) {
array_push($result,\support\Encrypt::userIDDecode($v['friendUser']['userID'])); $result[] = \support\Encrypt::userIDDecode($v['friendUser']['userID']);
} }
cache($cache_key,$result,3600); cache($cache_key, $result, 3600);
} }
$result[] = \support\Encrypt::userIDDecode($userID); $result[] = \support\Encrypt::userIDDecode($userID);
return $result; return $result;
} }
/** /**
* 删除朋友圈 * 删除朋友圈
* @Apidoc\Method("POST") * @Apidoc\Method("POST")
* @Apidoc\Param("id", type="int",require=true, desc="朋友圈动态ID") * @Apidoc\Param("id", type="int", require=true, desc="朋友圈动态ID")
* @return Response * @return Response
*/ */
function delete(Request $request): Response{ function delete(Request $request): Response
$id = $request->post('id'); {
$id = (int)$request->post('id');
$user = \support\Jwt::getUser(); $user = \support\Jwt::getUser();
if (!$user) { if (!$user) {
return $this->fail('请先登录'); return $this->fail('请先登录');
} }
if($id){
FriendCircleModel::where('id',$id)->where('user_id',$user->id)->delete(); if ($id > 0) {
FriendCircleModel::where('id', $id)->where('user_id', $user->id)->delete();
} }
return $this->success('删除成功'); return $this->success('删除成功');
} }
/** /**
* 设置朋友圈背景 * 设置朋友圈背景
* @param Request $request * @param Request $request
* @return Response * @return Response
*/ */
function upload_bg(Request $request){ function upload_bg(Request $request): Response
{
return $this->setBanner($request); return $this->setBanner($request);
} }
/** /**
* 设置朋友圈背景 * 设置朋友圈背景
* @Apidoc\Method("POST") * @Apidoc\Method("POST")
* @Apidoc\Param("file", type="File",require=true, desc="文件") * @Apidoc\Param("file", type="File", require=true, desc="文件")
* @return Response * @return Response
*/ */
function setBanner(Request $request){ function setBanner(Request $request): Response
{
try { try {
$user = \support\Jwt::getUser(); $user = \support\Jwt::getUser();
if (!$user) { if (!$user) {
return $this->fail('请先登录'); return $this->fail('请先登录');
} }
$res = $this->_upload($request); $res = $this->_upload($request);
if(is_string($res)){ if (is_string($res)) {
return $this->fail( $res); return $this->fail($res);
} }
Db::name('user_extend')->where('user_id',$user->id)->save([ $exist = Db::name('user_extend')->where('user_id', $user->id)->find();
'moments_banner' => $res[0]['file_name'], if ($exist) {
Db::name('user_extend')
->where('user_id', $user->id)
->update(['moments_banner' => $res[0]['file_name']]);
} else {
Db::name('user_extend')->insert([
'user_id' => $user->id,
'moments_banner' => $res[0]['file_name'],
]);
}
return $this->success(__('successful'), [
'url' => $res[0]['file_name']
]); ]);
return $this->success(__('successful'),[ } catch (\Exception $e) {
'url'=>$res[0]['file_name']
]);
}catch (\Exception $e){
return $this->error($e->getMessage()); return $this->error($e->getMessage());
} }
} }
}
}