<?php
namespace app\kaoshi\model;
use \app\BaseModel;
class Kaoshi extends BaseModel
{
public function search($srcfrom)
{
$src = [
'field' => 'id'
,'order' => 'desc'
,'zuzhi_id' => array()
,'xueqi_id' => ''
,'category_id' => array()
,'searchval' => ''
];
$src = array_cover($srcfrom, $src);
$src['zuzhi_id'] = strToarray($src['zuzhi_id']);
$src['xueqi_id'] = strToarray($src['xueqi_id']);
$src['category_id'] = strToarray($src['category_id']);
$data = $this
->order([$src['field'] =>$src['order']])
->when(strlen($src['searchval']) > 0, function($query) use($src){
$query->where('title', 'like', '%' . $src['searchval']. ' %');
})
->when(count($src['zuzhi_id']) > 0, function($query) use($src){
$query->where('zuzhi_id', 'in', $src['zuzhi_id']);
})
->when(count($src['xueqi_id']) > 0, function($query) use($src){
$query->where('xueqi_id', 'in', function($q)use($src){
$q->name('xueqi')
->where('category_id', 'in', $src['xueqi_id'])
->field('id');
});
})
->when(count($src['category_id']) > 0, function($query) use($src){
$query->where('category_id', 'in', $src['category_id']);
})
->with(
[
'ksCategory' => function ($query) {
$query->field('id, title');
}
,'ksZuzhi' => function ($query) {
$query->field('id, title, jiancheng');
}
,'ksXueqi' => function ($query) {
$query->field('id, title');
}
]
)
->append(['ckSubject', 'ckNianji'])
->select();
return $data;
}
public function kaoshiInfo($id = 0)
{
$kaoshiList = $this->where('id', $id)
->field('id, title, status, luru, bfdate, enddate')
->find();
return $kaoshiList;
}
public function setBfdateAttr($value)
{
return strtotime($value);
}
public function getBfdateAttr($value)
{
return date('Y-m-d', $value);
}
public function setEnddateAttr($value)
{
$sj = $value . ' 23:59:59';
return strtotime($sj);
}
public function getEnddateAttr($value)
{
return date('Y-m-d', $value);
}
public function getCkSubjectAttr($value)
{
$ksset = new \app\kaoshi\model\KaoshiSet;
$src = [
'kaoshi_id' => $this->getAttr('id')
];
$subject = $ksset->srcSubject($src);
$str = '';
if(isset($subject))
{
$i = 0;
foreach ($subject as $key => $value) {
if($i == 0)
{
$str = $value['jiancheng'];
}else{
$str = $str . '、' . $value['jiancheng'];
}
$i = $i + 1;
}
}
return $str;
}
public function getCkNianjiAttr($value)
{
$ksset = new \app\kaoshi\model\KaoshiSet;
$data = $ksset->srcGrade($this->getAttr('id'));
$str = '';
if(isset($data))
{
$i = 0;
foreach ($data as $key => $value) {
$temp = substr($value['nianjiname'], 0, 3);
if($i == 0)
{
$str = $temp;
}else{
$str = $str . '、' . $temp;
}
$i = $i + 1;
}
}
return $str;
}
public function ksSet()
{
return $this->hasMany('KaoshiSet', 'kaoshi_id', 'id');
}
public function ksCategory()
{
return $this->belongsTo('\app\system\model\Category', 'category_id', 'id');
}
public function ksChengji()
{
return $this->hasMany('\app\chengji\model\Chengji', 'kaoshi_id', 'id');
}
public function ksZuzhi()
{
return $this->belongsTo('\app\system\model\School', 'zuzhi_id', 'id');
}
public function ksXueqi()
{
return $this->belongsTo('\app\teach\model\Xueqi', 'xueqi_id', 'id');
}
}