You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zhishifufei_php/application/institution/model/questions/Relation.php

142 lines
5.4 KiB

9 months ago
<?php
// +----------------------------------------------------------------------
// | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2020 https://www.tczxkj.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权
// +----------------------------------------------------------------------
// | Author:甘肃天诚志信电子商务有限公司 刘海东 联系电话维系17600099397
// +----------------------------------------------------------------------
namespace app\institution\model\questions;
use traits\ModelTrait;
use basic\ModelBasic;
use service\UtilService as Util;
use app\merchant\model\questions\Certificate;
use app\merchant\model\user\User;
use app\merchant\model\special\Special;
use app\merchant\model\questions\TestPaper;
use app\merchant\model\download\DataDownload;
/**
* 关联记录 Model
* Class Relation
* @package app\merchant\model\questions
*/
class Relation extends ModelBasic
{
use ModelTrait;
public static function setWhere($relationship = 0, $relationship_id = 0)
{
return self::where(['is_del' => 0, 'relationship' => $relationship, 'relationship_id' => $relationship_id]);
}
public static function getSpecialJion($relationship_id, $relationship)
{
return self::alias('r')->join('Special s', 'r.relation_id=s.id')
->where(['r.is_del' => 0, 's.is_show' => 1, 's.is_del' => 0, 'r.relationship' => $relationship, 'r.relationship_id' => $relationship_id])
->field('s.type,s.title,s.is_light,s.light_type,s.image,s.id,r.sort,r.id as rid,r.relationship,r.relationship_id');
}
/**获取试题关联的专题
* @param $id
*/
public static function getQuestionsRelationSpecial($relationship_id, $relationship)
{
$data = self::getSpecialJion($relationship_id, $relationship)->order('r.sort DESC,rid DESC')->select();
$data = count($data) > 0 ? $data->toArray() : [];
$count = self::getSpecialJion($relationship_id, $relationship)->count();
return compact('data', 'count');
}
/**关联
* @param $id
* @param $special_ids
* @param $relationship
*/
public static function setRelations($id, $ids, $relationship)
{
$ids = explode(',', $ids);
if (count($ids) <= 0) return false;
foreach ($ids as $key => $value) {
$data['relationship'] = $relationship;
$data['relationship_id'] = $id;
$data['relation_id'] = $value;
if (self::be($data)) continue;
$data['add_time'] = time();
self::set($data);
}
return true;
}
/**修改排序
* @param $id
* @param $special_id
* @param $value
*/
public static function updateRelationSort($id, $special_id, $relationship, $value)
{
return self::where(['is_del' => 0, 'relationship' => $relationship, 'relationship_id' => $id, 'relation_id' => $special_id])->update(['sort' => $value]);
}
/**
* @param $id
* @param $special_id
* @param $relationship
*/
public static function delRelation($id, $special_id, $relationship)
{
return self::where(['is_del' => 0, 'relationship' => $relationship, 'relationship_id' => $id, 'relation_id' => $special_id])->delete();
}
public static function getTestPaperJion($relationship_id, $relationship)
{
return self::alias('r')->join('TestPaper t', 'r.relation_id=t.id')
->where(['r.is_del' => 0, 't.is_show' => 1, 't.is_del' => 0, 'r.relationship' => $relationship, 'r.relationship_id' => $relationship_id])
->field('t.type,t.title,t.id,r.sort,r.id as rid,r.relationship,r.relationship_id');
}
/**获取专题关联的考试或练习
* @param $id
* @param $relationship
*/
public static function getRelationTestPaper($id, $relationship, $page, $limit)
{
$data = self::getTestPaperJion($id, $relationship)->page($page, $limit)->order('r.sort DESC,rid DESC')->select();
$data = count($data) > 0 ? $data->toArray() : [];
foreach ($data as $key => &$value) {
if ($value['type'] == 1) {
$value['types'] = '练习';
} else {
$value['types'] = '考试';
}
}
$count = self::getTestPaperJion($id, $relationship)->count();
return compact('data', 'count');
}
public static function getDataDownloadJion($relationship_id, $relationship)
{
return self::alias('r')->join('DataDownload d', 'r.relation_id=d.id')
->where(['r.is_del' => 0, 'd.is_show' => 1, 'd.is_del' => 0, 'r.relationship' => $relationship, 'r.relationship_id' => $relationship_id])
->field('d.title,d.id,r.sort,r.id as rid,r.relationship,r.relationship_id');
}
/**获取专题关联的资料
* @param $id
* @param $relationship
*/
public static function getRelationDataDownload($id, $relationship, $page, $limit)
{
$data = self::getDataDownloadJion($id, $relationship)->page($page, $limit)->order('r.sort DESC,rid DESC')->select();
$data = count($data) > 0 ? $data->toArray() : [];
$count = self::getDataDownloadJion($id, $relationship)->count();
return compact('data', 'count');
}
}