🔓 Ultimate Webshell - Penetration Testing Tool

📖 File Reader

<?php
namespace app\api\controller;
use app\BaseController;
use app\api\common\Common_user;
use think\facade\Db;
use think\facade\View;

class Article extends Base
{
    /*文章详情*/
    public function article_info()
    {
        $article_id = input("param.article_id");
        if (empty($article_id)){
            return $this->error_json("参数错误");
        }
        $article_info = db::name("article")->where("id = $article_id")->find();
        if (empty($article_info)){
            return $this->error_json("该文章不存在");
        }
        $article_info["add_time"] = date("Y-m-d H:i",$article_info["add_time"]);
        //更改浏览量
        $info["browse_sum"] = $article_info["browse_sum"]+1;
        db::name("article")->where("id = $article_id")->data($info)->update();
        $data = [
            'article_info'=>$article_info,
        ];
        return $this->succeed_json("ok",$data);
    }

    /*文章列表*/
    public function article_list()
    {
        $act_id = input("param.act_id");
        $where = 1;
        if (!empty($act_id)){
            $where .= " and a.act_id = $act_id";
        }
        $list = db::name("article")->alias("a")
            ->join("article_act b","a.act_id = b.id","LEFT")
            ->field("a.id,a.title,a.img,a.describe,a.browse_sum,a.add_time, b.name as act_name")
            ->where("a.is_show = 1 and $where")
            ->order("a.add_time desc")
            ->page($this->page,$this->limit)
            ->select()
            ->toarray();
        foreach ($list as $k => $v){
            $list[$k]["add_time"] = date("Y.m.d",$v["add_time"]);
        }
        //获取总页数
        $count = db::name("article")->alias("a")
            ->join("article_act b","a.act_id = b.id","LEFT")
            ->field("a.id,a.title,a.img,a.describe,a.browse_sum,a.add_time, b.name as act_name")
            ->where("a.is_show = 1 and $where")
            ->count();
        $pages = $this->vue_pages($count,$this->limit);
        $data = [
            'list'=>$list,
            'pages'=>$pages,
        ];
        return $this->succeed_json("ok",$data);
    }

    /*活动列表*/
    public function activity_list()
    {
        $type = input("param.type");//类型:0全部 1已预约
        $where = 1;
        if ($type == 1){
            $user_yuyue = db::name("user_activity_dianmian")->where("user_id = $this->user_id")->select()->toArray();
            $activity_id = '';//已预约活动id
            foreach ($user_yuyue as $v){
                $activity_id .= $v["activity_id"].',';
            }
            $activity_id = substr($activity_id,0,strlen($activity_id)-1);
            if (!empty($activity_id)){
                $where .= " and id in ($activity_id)";
            }else{
                $where .= " and id in (0)";
            }
        }
        $list = db::name("activity_dianmian")->where("is_show = 1 and $where")->order("add_time desc")->page($this->page,$this->limit)->select()->toArray();
        foreach ($list as $k => $v){
            $list[$k]["add_time"] = date("Y.m.d",$v["add_time"]);
            $list[$k]["time_ks"] = date("m-d H:i",$v["time_ks"]);
            $list[$k]["time_js"] = date("m-d H:i",$v["time_js"]);
        }
        //获取总页数
        $count =db::name("activity_dianmian")->where("is_show = 1 and $where")->count();
        $pages = $this->vue_pages($count,$this->limit);
        $data = [
            'list'=>$list,
            'pages'=>$pages,
        ];
        return $this->succeed_json("ok",$data);
    }

    /*活动详情*/
    public function activity_info()
    {
        $activity_id = input("param.activity_id");
        if (empty($activity_id)){
            return $this->error_json("参数错误");
        }
        $info = db::name("activity_dianmian")->where("id = $activity_id")->find();
        $info["add_time"] = date("Y-m-d H:i",$info["add_time"]);
        $info["time_ks"] = date("m-d H:i",$info["time_ks"]);
        $info["time_js"] = date("m-d H:i",$info["time_js"]);
        $user_activity_dianmian = db::name("user_activity_dianmian")->where("user_id = $this->user_id and activity_id = $activity_id")->find();
        $is_lingqu = !empty($user_activity_dianmian)?1:0;
        $data = [
            'info'=>$info,
            'is_lingqu'=>$is_lingqu,
        ];
        return $this->succeed_json("ok",$data);
    }

    /*活动领取处理*/
    public function activity_lingqu()
    {
        /*实名认证检测*/
        $user_data = Common_user::user_detection($this->user_id);
        if ($user_data["code"] != 200){
            return $this->error_json($user_data["msg"],301);
        }
        $activity_id = input("param.activity_id");
        if (empty($activity_id)){
            return $this->error_json("参数错误");
        }
        $user_activity_dianmian = db::name("user_activity_dianmian")->where("user_id = $this->user_id and activity_id = $activity_id")->find();
        if (!empty($user_activity_dianmian)){
            return $this->error_json("不可重复领取");
        }
        $info = [
            'user_id'=>$this->user_id,
            'activity_id'=>$activity_id,
            'time_add'=>time(),
        ];
        db::name("user_activity_dianmian")->insertGetId($info);
        return $this->succeed_json("领取成功");
    }
}