You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.1 KiB
99 lines
3.1 KiB
<?php
|
|
|
|
namespace app\enterprise\controller;
|
|
|
|
use app\BaseController;
|
|
|
|
use app\enterprise\model\{Emoji as EmojiModel,File,Message};
|
|
use think\facade\Filesystem;
|
|
use think\facade\View;
|
|
class Emoji extends BaseController
|
|
{
|
|
// 表情列表
|
|
public function index()
|
|
{
|
|
$map=['status'=>1,'user_id'=>$this->uid,'type'=>2];
|
|
$list = EmojiModel::where($map)->field('id,name,src,file_id')->order('update_time desc')->select();
|
|
$data=[];
|
|
if($list){
|
|
$data=$list->toArray();
|
|
foreach ($data as $k => $v) {
|
|
$url=getFileUrl($v['src']);
|
|
$data[$k]['src'] =$url;
|
|
$data[$k]['title'] =$v['name'];
|
|
}
|
|
}
|
|
return success('', $data, count($data));
|
|
}
|
|
|
|
// 添加表情
|
|
public function add(){
|
|
$param = $this->request->param();
|
|
$file_id=$param['file_id'];
|
|
$fileInfo=File::find($file_id);
|
|
if(!$fileInfo){
|
|
return warning(lang('system.exits'));
|
|
}
|
|
$exist=EmojiModel::where(['user_id'=>$this->uid,'file_id'=>$file_id])->find();
|
|
// 判断是否已经有了当前表情,有了就更新
|
|
if($exist){
|
|
EmojiModel::where(['id'=>$exist['id']])->update(['update_time'=>time()]);
|
|
}else{
|
|
$info=[
|
|
'user_id'=>$this->uid,
|
|
'type'=>2,
|
|
'file_id'=>$file_id,
|
|
'name'=>$fileInfo->name,
|
|
'src'=>$fileInfo->src,
|
|
];
|
|
EmojiModel::create($info);
|
|
}
|
|
return success(lang('system.addOk'));
|
|
}
|
|
|
|
// 删除表情
|
|
public function del(){
|
|
$ids = $this->request->param('ids',[]);
|
|
if(!is_array($ids) || $ids==[]){
|
|
return warning(lang('system.parameterError'));
|
|
}
|
|
foreach($ids as $id){
|
|
$emoji=EmojiModel::where(['id'=>$id,'user_id'=>$this->uid])->find();
|
|
if(!$emoji){
|
|
continue;
|
|
}
|
|
$res=EmojiModel::where(['id'=>$id])->delete();
|
|
if($res){
|
|
$exist=EmojiModel::where(['file_id'=>$emoji['file_id']])->find();
|
|
$exist2=Message::where(['file_id'=>$emoji['file_id']])->find();
|
|
// 如果文件没有引用了,就删除掉源文件
|
|
if(!$exist || !$exist2){
|
|
$disk=env('filesystem.driver','local');
|
|
$file=File::find($emoji['file_id']);
|
|
// Filesystem::disk($disk)->delete($file->src);
|
|
}
|
|
}
|
|
}
|
|
return success(lang('system.delOk'));
|
|
|
|
}
|
|
|
|
// 移动表情
|
|
public function move(){
|
|
$ids = $this->request->param('ids',[]);
|
|
if(!is_array($ids) || $ids==[]){
|
|
return warning(lang('system.parameterError'));
|
|
}
|
|
foreach($ids as $id){
|
|
$emoji=EmojiModel::where(['id'=>$id,'user_id'=>$this->uid])->find();
|
|
if(!$emoji){
|
|
continue;
|
|
}
|
|
EmojiModel::where(['id'=>$id])->update(['update_time'=>time()]);
|
|
}
|
|
return success(lang('system.success'));
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|