GeoQuestionResLogic.php 2.2 KB
<?php
/**
 * @remark :
 * @name   :GeoQuestionResLogic.php
 * @author :lyh
 * @method :post
 * @time   :2025/7/4 9:47
 */

namespace App\Http\Logic\Bside\Geo;

use App\Http\Logic\Bside\BaseLogic;
use App\Models\Geo\GeoQuestionResult;

class GeoQuestionResLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();
        $this->model = new GeoQuestionResult();
        $this->param = $this->requestAll;
    }

    /**
     * @remark :获取类型统计数据
     * @name   :getCount
     * @author :lyh
     * @method :post
     * @time   :2025/7/8 17:16
     */
    public function getCount(){
        $total = $this->model->counts(['project_id'=>$this->user['project_id']]);
        $type_1 = $this->model->counts(['type'=>1,'project_id'=>$this->user['project_id']]);
        $type_2 = $this->model->counts(['type'=>2,'project_id'=>$this->user['project_id']]);
        return $this->success(['total'=>$total,'type_1'=>$type_1,'type_2'=>$type_2]);
    }

    /**
     * @remark :获取列表页数据
     * @name   :getResultList
     * @author :lyh
     * @method :post
     * @time   :2025/7/4 9:48
     */
    public function getResultList($map = [],$page = 1,$row = 20,$order = 'id'){
        $filed = ['id','project_id','question_id','platform','question','keywords','url','created_at','updated_at'];
        $result = GeoQuestionResult::select($filed)
            ->where($map)
            ->where(function($query) {
                $query->where('keywords', '!=', '[]')
                    ->orWhere('url', '!=', '[]');
            })
            ->orderByRaw('LENGTH(question) ASC')
            ->paginate($row, $filed, 'page', $page);
        $data = empty($result) ? [] : $result->toArray();

//        $filed = ['id','project_id','question_id','platform','question','keywords','url','created_at','updated_at'];
//        $data = $this->model->lists($map,$page,$row,$order,$filed);
        return $this->success($data);
    }

    /**
     * @remark :获取数据详情
     * @name   :getResultInfo
     * @author :lyh
     * @method :post
     * @time   :2025/7/4 10:19
     */
    public function getResultInfo(){
        $data = $this->model->read($this->param);
        return $this->success($data);
    }
}