Hobby.php 3.3 KB
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/3/19
 * Time: 16:47
 */

namespace app\admin\controller;

use app\common\controller\Backend;
use think\Db;

class Hobby extends Backend
{
    /**
     * OrderChat模型对象
     * @var \app\admin\model\Study
     */
    protected $model = null;

    public function _initialize()
    {
        parent::_initialize();
        $this->model = new \app\admin\model\ThirdStudy();
    }

    public function index1($ids = null)
    {
        $this->relationSearch = true;
        //设置过滤方法
        $this->request->filter(['strip_tags']);
        if ($this->request->isAjax()) {
            //如果发送的来源是Selectpage,则转发到Selectpage
            if ($this->request->request('keyField')) {
                return $this->selectpage();
            }
            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
            $total = $this->model
                ->where($where)
                ->where('third_id',$ids)
                ->order($sort, $order)
                ->count();

            $list = $this->model
                ->where($where)
                ->where('third_id',$ids)
                ->order($sort, $order)
                ->limit($offset, $limit)
                ->select();
            $list = collection($list)->toArray();
            foreach ($list as &$v){

                //该科目用户完成的课时跟总课时
                $finish_hour = Db::name('study_class')
                    ->alias('a')
                    ->join('classes b','a.class_id = b.id')
                    ->where('a.third_id',$ids)
                    ->where('a.study_id',$v['study_id'])
                    ->where('a.status',2)
                    ->field('sum(b.class_hour) as finish_hour')
                    ->find();
                if(empty($finish_hour['finish_hour'])){
                    $finish_hour['finish_hour'] = 0;
                }
                //查出该科目的总课时
                $class = Db::name('study')->where('id',$v['study_id'])->value('class_hour');


                //该科目的主修课程客户完成数量
                $finish_count = Db::name('study_class')
                    ->where('third_id',$ids)
                    ->where('study_id',$v['study_id'])
                    ->where('status',2)
                    ->count();

                if(empty($finish_count)){
                    $finish_count = 0;
                }

                //查询该科目主修课程数量
                $zhu_quan = Db::name('classes')
                    ->where('study_id',$v['study_id'])
                    ->where('is_major',1)
                    ->count();
                $v['required_num'] = $finish_count.'/'.$zhu_quan;
                //完成课时跟全部课时比例
                $v['finish_class'] = $finish_hour['finish_hour'].'/'.$class;
                $v['study_id'] = Db::name('study')->where('id',$v['study_id'])->value('examname');
            }
            $result = array("total" => $total, "rows" => $list);

            return json($result);
        }
        $this->assignconfig('ids',$ids);
        return $this->view->fetch();
    }
}