first commit
This commit is contained in:
280
芳林公司项目/www.zhiyuanhelp.com/application/api/model/Major.php
Normal file
280
芳林公司项目/www.zhiyuanhelp.com/application/api/model/Major.php
Normal file
@@ -0,0 +1,280 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Administrator
|
||||
* Date: 2020/4/20
|
||||
* Time: 19:39
|
||||
*/
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Major extends Model
|
||||
{
|
||||
protected $table = 'yzy_majors';
|
||||
|
||||
/*
|
||||
* 通过title搜索专业数据
|
||||
* */
|
||||
public static function getMajorInfoByTitle($array,$page,$limit = 10){
|
||||
//获取配置表的年份
|
||||
$year = config('setsub.year');
|
||||
$title = $array['title'];
|
||||
//搜索条件
|
||||
unset($array['page']);
|
||||
unset($array['type']);
|
||||
unset($array['title']);
|
||||
foreach ($array as $key => $value) {
|
||||
if (!empty($value)) {
|
||||
switch ($key) {
|
||||
case 'userPro':
|
||||
$where[] = ['yzy_province', '=', $value];
|
||||
break;
|
||||
case 'subType':
|
||||
$where[] = ['wenli', '=', $value];
|
||||
break;
|
||||
case 'province':
|
||||
$where[] = ['province', 'in', ($value)];
|
||||
break;
|
||||
case 'batch':
|
||||
$where[] = ['batch', 'in', ($value)];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$count = self::where([['title','like','%'.$title . '%'],['level','=',3]])->cache(3600)
|
||||
->count();
|
||||
|
||||
//查询在本省招生专业的数据
|
||||
$result = self::field('title,pid,code')
|
||||
->where([['title','like','%'.$title . '%'],['level','=',3]])
|
||||
->cache(3600)
|
||||
->page($page,$limit)
|
||||
->select();
|
||||
|
||||
empty($result) ? $msg = '暂无数据!' : $msg = '查询成功!';
|
||||
|
||||
foreach($result as $key => $val){
|
||||
//查询向本省招该专业的院校数量
|
||||
$result[$key]['countSch'] = Db::table('yzy_major_plan')->where($where)->where([['majorCode','=',$val['code']],['year','=',$year]])->count();
|
||||
$result[$key]['sumPlan'] = Db::table('yzy_major_plan')->where($where)->where([['majorCode','=',$val['code']],['year','=',$year]])->sum('planNum');
|
||||
|
||||
//获取类别
|
||||
$majorType = self::field('title')->where('id','=',$val['pid'])->find();
|
||||
$result[$key]['typeName'] = $majorType['title'];
|
||||
|
||||
//获取专业相关信息
|
||||
$resContent = Db::table('yzy_major_content')->field('batch,year_length,degree,sex_bili,year_length')->where('major_code','=',$val['code'])->find();
|
||||
$result[$key]['learnYear'] = $resContent['year_length'];
|
||||
$result[$key]['batch'] = $resContent['batch'];
|
||||
$result[$key]['degree'] = $resContent['degree'];
|
||||
$result[$key]['sex_bili'] = $resContent['sex_bili'];
|
||||
}
|
||||
|
||||
//分页数据
|
||||
$info = [
|
||||
'limit' => $limit,
|
||||
'page_current' => $page,
|
||||
'page_sum' => ceil($count / $limit),
|
||||
];
|
||||
|
||||
//组合返回
|
||||
$list = [
|
||||
'msg' => $msg,
|
||||
'count' => $count,
|
||||
'info' => $info,
|
||||
'res' => $result,
|
||||
];
|
||||
|
||||
return $list;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* 专业搜索默认显示数据
|
||||
* */
|
||||
|
||||
public static function getDefaultMajor($array){
|
||||
|
||||
//获取配置表的年份
|
||||
$year = config('setsub.year');
|
||||
$majorArr = config('major.defaultMajor');
|
||||
//搜索条件
|
||||
|
||||
unset($array['title']);
|
||||
foreach ($array as $key => $value) {
|
||||
if (!empty($value)) {
|
||||
switch ($key) {
|
||||
case 'userPro':
|
||||
$where[] = ['yzy_province', '=', $value];
|
||||
break;
|
||||
case 'subType':
|
||||
$where[] = ['wenli', '=', $value];
|
||||
break;
|
||||
case 'province':
|
||||
$where[] = ['province', 'in', ($value)];
|
||||
break;
|
||||
case 'batch':
|
||||
$where[] = ['batch', 'in', ($value)];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//查询在本省招生专业的数据
|
||||
$result = self::field('title,pid,code')
|
||||
->where([['code','in',$majorArr],['level','=',3]])
|
||||
->cache(3600)
|
||||
->select();
|
||||
empty($result) ? $msg = '暂无数据!' : $msg = '查询成功!';
|
||||
|
||||
foreach($result as $key => $val){
|
||||
|
||||
//查询向本省招该专业的院校数量
|
||||
$result[$key]['countSch'] = Db::table('yzy_major_plan')->where($where)->where([['majorCode','=',$val['code']],['year','=',$year]])->count();
|
||||
$result[$key]['sumPlan'] = Db::table('yzy_major_plan')->where($where)->where([['majorCode','=',$val['code']],['year','=',$year]])->sum('planNum');
|
||||
|
||||
//获取类别
|
||||
$majorType = self::field('title')->where('id','=',$val['pid'])->find();
|
||||
$result[$key]['typeName'] = $majorType['title'];
|
||||
|
||||
//获取专业相关信息
|
||||
$resContent = Db::table('yzy_major_content')->field('batch,year_length,degree,sex_bili,year_length')->where('major_code','=',$val['code'])->find();
|
||||
$result[$key]['batch'] = $resContent['batch'];
|
||||
$result[$key]['learnYear'] = $resContent['year_length'];
|
||||
$result[$key]['degree'] = $resContent['degree'];
|
||||
$result[$key]['sex_bili'] = $resContent['sex_bili'];
|
||||
}
|
||||
|
||||
$res['majorContent'] = $result;
|
||||
$res['majorTitle'] = config('major.major');
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 查询外省向本省招收专业的学校
|
||||
* */
|
||||
public static function getMajorSch($data,$user_id,$page = 1, $limit = 5){
|
||||
//获取配置表的年份
|
||||
$year = 2018;
|
||||
$where[] = ['year','=',$year];
|
||||
|
||||
//搜索条件
|
||||
unset($data['page']);
|
||||
foreach ($data as $key => $value) {
|
||||
if (!empty($value)) {
|
||||
switch ($key) {
|
||||
case 'code':
|
||||
$where[] = ['majorCode', '=', $value];
|
||||
break;
|
||||
case 'userPro':
|
||||
$where[] = ['yzy_province', '=', $value];
|
||||
break;
|
||||
case 'subType':
|
||||
$where[] = ['wenli', '=', $value];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
$count = Db::table('yzy_major_score')
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
//查询在本省招生专业的数据
|
||||
$result = Db::table('yzy_major_score')
|
||||
->field('id,sch_id,batchName,batch,majorCode,major,minScore,lowSort,enterNum,planNum,typeName,cost,sch_name,code')
|
||||
->where($where)
|
||||
->page($page,$limit)
|
||||
->select();
|
||||
|
||||
empty($result) ? $msg = '暂无数据!' : $msg = '查询成功!';
|
||||
|
||||
foreach($result as $key => $val){
|
||||
$result[$key]['title'] = $val['major'];
|
||||
$result[$key]['lowestRank'] = $val['lowSort'];
|
||||
$result[$key]['tags'] = $val['typeName'];
|
||||
$result[$key]['title'] = $val['major'];
|
||||
unset($result[$key]['major']);
|
||||
unset($result[$key]['lowSort']);
|
||||
}
|
||||
|
||||
//分页数据
|
||||
$info = [
|
||||
'limit' => $limit,
|
||||
'page_current' => $page,
|
||||
'page_sum' => ceil($count / $limit),
|
||||
];
|
||||
|
||||
//组合返回
|
||||
$list = [
|
||||
'msg' => $msg,
|
||||
'count' => $count,
|
||||
'info' => $info,
|
||||
'data' => $result,
|
||||
];
|
||||
return $list;
|
||||
}
|
||||
|
||||
/*
|
||||
* 查询院校的专业
|
||||
* */
|
||||
public static function getSchMajorBy($data,$user_id){
|
||||
//调用配置表年份
|
||||
$year = config('setsub.year');
|
||||
if($data['userPro'] == 1){
|
||||
$tableMajor = $data['subType'] == 1 ? 'rec_js_wen_major':'rec_js_li_major';
|
||||
}else{
|
||||
$tableMajor = $data['subType'] == 1 ? 'rec_wen_major':'rec_li_major';
|
||||
}
|
||||
|
||||
//查询用户收藏的专业
|
||||
$resCollect = [];
|
||||
if($user_id){
|
||||
$resCollect = CollectMajor::getUserCollectMajor($user_id,$data['userPro'],$data['subType'],$data['score']);
|
||||
}
|
||||
|
||||
$result = Db::table($tableMajor)->where('rec_id','=',$data['id'])->find();
|
||||
if(empty($result)){
|
||||
$arr = [];
|
||||
}else{
|
||||
$res = json_decode($result['professions']);
|
||||
|
||||
foreach ($res as $key => $val){
|
||||
|
||||
$arr[$key]['probability'] = $val->probability;
|
||||
$arr[$key]['title'] = $val->alias;
|
||||
$arr[$key]['cost'] = $val->cost;
|
||||
$arr[$key]['code'] = $val->code;
|
||||
$arr[$key]['enterNum'] = $val->enterNum;
|
||||
$arr[$key]['planNum'] = $val->planNum;
|
||||
$arr[$key]['majorCode'] = $val->majorCode;
|
||||
$arr[$key]['rec_id'] = $result['rec_id'];
|
||||
$resRank = json_decode($val->extended);
|
||||
$arr[$key]['lowestRank'] = $resRank[0]->ls;
|
||||
$arr[$key]['minScore'] = $resRank[0]->ms;
|
||||
$arr[$key]['is_collect'] = 0;//收藏默认0,后期修改
|
||||
$resType = self::alias('a')->field('b.title')
|
||||
->join('yzy_majors b','a.pid = b.id','left')
|
||||
->where('a.code','=',$val->majorCode)
|
||||
->find();
|
||||
$arr[$key]['tags'] = $resType['title'];
|
||||
$arr[$key]['is_collect'] = 0;
|
||||
|
||||
if(is_array($resCollect)){
|
||||
if(in_array($data['sch_id'].'_'.$val->majorCode.'_'.$val->code,$resCollect)){
|
||||
$arr[$key]['is_collect'] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return $arr;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user