redid 分页 查询 批量删除

12 篇文章 0 订阅
1 篇文章 0 订阅
<?php

namespace App\Http\Controllers\Manage;

use Illuminate\Http\Request;
use App\Http\Requests;
use Illuminate\Support\Facades\Redis;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Util\Tools;
use App\Http\Controllers\Util\HttpUtil;
use DB;

class WarnSaveUrlController extends Controller
{
    public $redis;
    public $totalCount;  //数据总条数
    public $pageSize;   //每页显示条数
    public $firstPage;  //第一页
    public $endPage;    //最后一页
    public $maxSize;     //最大显示多少页(大于该数用...代替)
    public $currentPage; //当前页
    public $pageNum;
    
    public function __construct(Request $request) {
       
       $this->redis = Redis::connection('online');

       $this->totalCount=$this->redis->lLen(config('param.REDIS_KEY'));

       // $this->db = DBUtil::urlqueneConnect();
    }
    /**
     * 类型List 键值:queue:urls
     * @param  Request $request [description]
     * @return [type]           [description]
     */
    public function index(Request $request)
    {
        $size = empty($request->size)?10:$request->size;

        $maxSize = empty($request->maxSize)?10:$request->maxSize;

        $this->currentPage = empty($request->page)?1:$request->page;

        $this->pageSize=$size;
        $this->maxSize=$maxSize;

        $this->pageNum=ceil($this->totalCount/$this->pageSize);

        $redis_urls = $this->pageCaclt($this->currentPage);
        $page_html = $this->gainLi($this->currentPage);

        $data['page_html'] = $page_html;

        $data['redis_url'] = $redis_urls;

        return view('admin.warnsave.urllist',$data);
    }

    public function pageCaclt($page){

        if($page<1||$page > $this->pageNum)
        {
            $page=1;
        }

        $start=($page-1)*$this->pageSize;

        $data = $this->redis->lRange(config('param.REDIS_KEY'),$start,($start+$this->pageSize-1));

        return $data;
    }

    public function gainLi($page){
        if($page<1||$page>$this->pageNum)
        {
            $page=1;
        }

        $pageLi="";
        if($this->pageNum<=$this->maxSize){
            $pageLi.="<div style='margin:0 auto;width:800px;height:50px;
            text-align:center;'><span>共{$this->pageNum}页</span> ";
            for($i=1;$i<$this->pageNum;$i++){
                if($i==$page)
                    $pageLi.="<span style='background:red;padding: 7px;border-radius: 3px;'>$i</span>   ";
                else
                    $pageLi.="<span><a href='?page=$i'>$i</a></span>   ";
            }
            $pageLi.="</div>";
        }
        else{
            $pre=$page>1?$page-1:1;
            $next=$page<$this->pageNum?$page+1:$this->pageNum;
            $divide=($this->maxSize-1)/2;
            $left=$page-$divide;
            if($left<1)
                $left=1;
            if($left+$this->maxSize>=$this->pageNum)
                $left=$this->pageNum-$this->maxSize+1;
            $right=$left+$this->maxSize-1;
            $pageLi.="<div style='margin:0 auto;width:800px;height:50px;
            text-align:center;'><span>共{$this->pageNum}页</span> ";
            if($page==1){
                $pageLi.="<span>首页</span>  ";
                $pageLi.="<span>上一页</span>  ";
            }
            else{
                $pageLi.="<span><a href='?page=1'>首页</a></span>  ";
                $pageLi.="<span><a href='?page={$pre}'>上一页</a></span>  ";
            }
            for($i=$left;$i<=$right;$i++){
                if($i==$page)
                    $pageLi.="<span style='background:red;padding: 7px;border-radius: 3px;'>$i</span>  ";
                else
                    $pageLi.="<span><a href='?page=$i'>$i</a></span>  ";
            }
            if($page==$this->pageNum){
                $pageLi.="<span>下一页</span>  ";
                $pageLi.="<span>尾页</span>";
            }
            else{
                $pageLi.="<span><a href='?page={$next}'>下一页</a></span>  ";
                $pageLi.="<span><a href='?page={$this->pageNum}'>尾页</a></span>";
            }
            $pageLi.="</div>";
        }
        return $pageLi;
    }

    public function create(Request $request)
    {

        return view('admin.warnsave.urlcreate');
    }
    public function store(Request $request)
    {

        $url = empty($request->url)?'':$request->url;
        if(empty($url))return redirect()->back()->withErrors(['错误','msg'=>'该URL 不能为空,请输入']);

        if(!HttpUtil::isCheckUrl($url))return redirect()->back()->withErrors(['错误','msg'=>'该URL 无效,请重新输入']);

        $this->redis->lpush(config('param.REDIS_KEY'),$url);
        return redirect('/manage/wsurl');
    }
    public function redisDel(Request $request)
    {
        $url = $request->url;
        $this->redis->lrem(config('param.REDIS_KEY'),0,$url);

        return redirect('/manage/wsurl');
    }
    /**
     * 批量删除
     * @param  Request $request [description]
     * @return [type]           [description]
     */
    public function redisDelAll(Request $request)
    {
        $ids = empty($request->ids)?'':$request->ids;

        if(empty($ids))exit(json_encode(['status'=>false,'msg'=>'请选择要删除的URL']));

        $ids_tmp = explode(',', $ids);

        foreach ($ids_tmp as $key => $value) {

            $this->redis->lrem(config('param.REDIS_KEY'),0,$value);
        }
        exit(json_encode(['status'=>true,'msg'=>'删除成功']));
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值