Emoji.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace app\enterprise\controller;
  3. use app\BaseController;
  4. use app\enterprise\model\{Emoji as EmojiModel,File,Message};
  5. use think\facade\Filesystem;
  6. use think\facade\View;
  7. class Emoji extends BaseController
  8. {
  9. // 表情列表
  10. public function index()
  11. {
  12. $map=['status'=>1,'user_id'=>$this->uid,'type'=>2];
  13. $list = EmojiModel::where($map)->field('id,name,src,file_id')->order('update_time desc')->select();
  14. $data=[];
  15. if($list){
  16. $data=$list->toArray();
  17. foreach ($data as $k => $v) {
  18. $url=getFileUrl($v['src']);
  19. $data[$k]['src'] =$url;
  20. $data[$k]['title'] =$v['name'];
  21. }
  22. }
  23. return success('', $data, count($data));
  24. }
  25. // 添加表情
  26. public function add(){
  27. $param = $this->request->param();
  28. $file_id=$param['file_id'];
  29. $fileInfo=File::find($file_id);
  30. if(!$fileInfo){
  31. return warning(lang('system.exits'));
  32. }
  33. $exist=EmojiModel::where(['user_id'=>$this->uid,'file_id'=>$file_id])->find();
  34. // 判断是否已经有了当前表情,有了就更新
  35. if($exist){
  36. EmojiModel::where(['id'=>$exist['id']])->update(['update_time'=>time()]);
  37. }else{
  38. $info=[
  39. 'user_id'=>$this->uid,
  40. 'type'=>2,
  41. 'file_id'=>$file_id,
  42. 'name'=>$fileInfo->name,
  43. 'src'=>$fileInfo->src,
  44. ];
  45. EmojiModel::create($info);
  46. }
  47. return success(lang('system.addOk'));
  48. }
  49. // 删除表情
  50. public function del(){
  51. $ids = $this->request->param('ids',[]);
  52. if(!is_array($ids) || $ids==[]){
  53. return warning(lang('system.parameterError'));
  54. }
  55. foreach($ids as $id){
  56. $emoji=EmojiModel::where(['id'=>$id,'user_id'=>$this->uid])->find();
  57. if(!$emoji){
  58. continue;
  59. }
  60. $res=EmojiModel::where(['id'=>$id])->delete();
  61. if($res){
  62. $exist=EmojiModel::where(['file_id'=>$emoji['file_id']])->find();
  63. $exist2=Message::where(['file_id'=>$emoji['file_id']])->find();
  64. // 如果文件没有引用了,就删除掉源文件
  65. if(!$exist || !$exist2){
  66. $disk=env('filesystem.driver','local');
  67. $file=File::find($emoji['file_id']);
  68. Filesystem::disk($disk)->delete($file->src);
  69. }
  70. }
  71. }
  72. return success(lang('system.delOk'));
  73. }
  74. // 移动表情
  75. public function move(){
  76. $ids = $this->request->param('ids',[]);
  77. if(!is_array($ids) || $ids==[]){
  78. return warning(lang('system.parameterError'));
  79. }
  80. foreach($ids as $id){
  81. $emoji=EmojiModel::where(['id'=>$id,'user_id'=>$this->uid])->find();
  82. if(!$emoji){
  83. continue;
  84. }
  85. EmojiModel::where(['id'=>$id])->update(['update_time'=>time()]);
  86. }
  87. return success(lang('system.success'));
  88. }
  89. }