130 lines
4.1 KiB
PHP
130 lines
4.1 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace app\api\controller;
|
||
|
|
|
||
|
|
use support\Request;
|
||
|
|
use support\Response;
|
||
|
|
use hg\apidoc\annotation as Apidoc;
|
||
|
|
use app\model\User;
|
||
|
|
use app\model\Album as AlbumModel;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 群组管理
|
||
|
|
*/
|
||
|
|
class GroupController extends BaseController
|
||
|
|
{
|
||
|
|
public $noNeedAuth = ['*'];
|
||
|
|
public $noNeedLogin = [];
|
||
|
|
/**
|
||
|
|
* @Apidoc\Title("群相片列表")
|
||
|
|
* @Apidoc\Method("POST")
|
||
|
|
* @Apidoc\Param("group_id", type="string", require=true, desc="群ID")
|
||
|
|
* @Apidoc\Param("page", type="int", require=true, desc="页码",default=1)
|
||
|
|
* @Apidoc\Param("limit", type="int", require=true, desc="分页大小",default=10)
|
||
|
|
*/
|
||
|
|
function album_list(Request $request): Response
|
||
|
|
{
|
||
|
|
$user = \support\Jwt::getUser();
|
||
|
|
$limit = $request->post('limit',10);
|
||
|
|
$offset = $request->post('offset',0);
|
||
|
|
$group_id = $request->post('groupID') ?:$request->post('group_id');
|
||
|
|
//$ls = $this->get_user_in_group($group_id);
|
||
|
|
//log_alert($ls);
|
||
|
|
log_alert([$offset,$group_id,$limit]);
|
||
|
|
$list = AlbumModel::where('group_id',$group_id)
|
||
|
|
->where('id','<',$offset)
|
||
|
|
->order('id','desc')
|
||
|
|
->limit(0,$limit)
|
||
|
|
->select();
|
||
|
|
return $this->success('ok',$list);
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* @Apidoc\Title("上传相片")
|
||
|
|
* @Apidoc\Method("POST")
|
||
|
|
* @Apidoc\Param("group_id", type="string", require=true, desc="群ID")
|
||
|
|
* @Apidoc\Param("title", type="string", require=true, desc="标题")
|
||
|
|
* @Apidoc\Param("url", type="string", require=true, desc="图片")
|
||
|
|
*/
|
||
|
|
function album_create(Request $request): Response
|
||
|
|
{
|
||
|
|
$user_id = \support\Jwt\JwtToken::getCurrentId();
|
||
|
|
$res = $this->_upload($request);
|
||
|
|
if(is_string($res)){
|
||
|
|
return $this->fail( $res);
|
||
|
|
}
|
||
|
|
$groupID = $request->post('groupID');
|
||
|
|
$insert_data = [];
|
||
|
|
foreach($res as $item){
|
||
|
|
$insert_data[] = [
|
||
|
|
'user_id' => $user_id,
|
||
|
|
'group_id' => $groupID,
|
||
|
|
'title' => $item['origin_name'],
|
||
|
|
'url' => $item['file_name'],
|
||
|
|
];
|
||
|
|
}
|
||
|
|
$result = AlbumModel::saveAll($insert_data);
|
||
|
|
return $this->success('ok',$result[0]);
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* @Apidoc\Title("更新相片")
|
||
|
|
* @Apidoc\Method("POST")
|
||
|
|
* @Apidoc\Param("id", type="string", require=true, desc="ID")
|
||
|
|
* @Apidoc\Param("title", type="string", require=true, desc="标题")
|
||
|
|
* @Apidoc\Param("url", type="string", require=true, desc="图片")
|
||
|
|
*/
|
||
|
|
function album_update(Request $request): Response
|
||
|
|
{
|
||
|
|
$id = $request->input('id');
|
||
|
|
$data = $request->input('data');
|
||
|
|
$album = AlbumModel::find($id);
|
||
|
|
$album->update($data);
|
||
|
|
return $this->success('ok',$album);
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* @Apidoc\Title("删除相片")
|
||
|
|
* @Apidoc\Method("POST")
|
||
|
|
* @Apidoc\Param("id", type="string", require=true, desc="ID")
|
||
|
|
*/
|
||
|
|
function album_delete(Request $request): Response
|
||
|
|
{
|
||
|
|
$ids = Input('ids');
|
||
|
|
//$album = AlbumModel::whereIn('id',condition: $ids)->select();
|
||
|
|
//$album->delete();
|
||
|
|
AlbumModel::whereIn('id',condition: $ids)->delete();
|
||
|
|
return $this->success('ok');
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* 获取再群里的角色
|
||
|
|
* @Apidoc\NotParse()
|
||
|
|
* @Apidoc\NotDebug()
|
||
|
|
*/
|
||
|
|
private function get_user_in_group($group_id='',$user_id='')
|
||
|
|
{
|
||
|
|
$list = request()->IM->group->getGroupMemberList($group_id,$user_id);
|
||
|
|
return $list;
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* 头像上传
|
||
|
|
* @Apidoc\Method("POST")
|
||
|
|
* @Apidoc\Param("file", type="File", require=true, desc="文件")
|
||
|
|
*/
|
||
|
|
public function avatar(Request $request)
|
||
|
|
{
|
||
|
|
//单文件上传
|
||
|
|
$groupID = $request->post('groupID');
|
||
|
|
if(!$groupID){
|
||
|
|
return $this->fail(__('参数错误'));
|
||
|
|
}
|
||
|
|
$res = $this->_upload($request);
|
||
|
|
if(is_string($res)){
|
||
|
|
return $this->fail( $res);
|
||
|
|
}
|
||
|
|
$data = [
|
||
|
|
'groupID' => $groupID,
|
||
|
|
'faceURL' => $res[0]['file_name'],
|
||
|
|
];
|
||
|
|
$list = request()->IM->group->setGroupInfo($data);
|
||
|
|
return $this->success(__('successful'),$data);
|
||
|
|
}
|
||
|
|
}
|