355 lines
12 KiB
PHP
355 lines
12 KiB
PHP
<?php
|
||
/**
|
||
* Created by PhpStorm.
|
||
* User: Administrator
|
||
* Date: 2020/4/28
|
||
* Time: 13:54
|
||
*/
|
||
|
||
namespace app\admin\controller;
|
||
|
||
use think\Db;
|
||
use think\Exception;
|
||
use think\facade\Cache;
|
||
use think\Log;
|
||
|
||
class Shell
|
||
{
|
||
//修改新高考mykemu字段
|
||
public function updateMykemu(){
|
||
ignore_user_abort(true);
|
||
set_time_limit(0);
|
||
$id = Cache::store('redis')->get('recLikekemus');
|
||
if(empty($id)){
|
||
$id = 3793738;
|
||
}
|
||
$count = Db::table('rec_js')->where('id','between',[$id,7592360])->count();
|
||
$num = 1000;//每次导入条数
|
||
$limit = ceil($count/$num);
|
||
|
||
for($i=1;$i<=$limit;$i++) {
|
||
|
||
$offet = ($i-1)*$num;
|
||
|
||
$result = Db::table('rec_js')->field('id,mykemu')->where('id','between',[$id,7592360])->limit($offet,$num)->select();
|
||
$level = config('setsub.levelArr');
|
||
foreach ($result as $key => $val) {
|
||
$val['mykemu'] = $result = explode(',',$val['mykemu']);
|
||
$res = '';
|
||
foreach($val['mykemu'] as $k=>$v){
|
||
|
||
$res .= $level[$v];
|
||
}
|
||
|
||
Db::table('rec_js')->where('id','=',$val['id'])->update(['mykemu'=>$res]);
|
||
Cache::store('redis')->set("recLikekemus",$val['id'],36000);
|
||
}
|
||
|
||
}
|
||
echo 1;die;
|
||
|
||
}
|
||
/*
|
||
* 江苏同步public和majorNum
|
||
* */
|
||
|
||
public function pubMajorNumTojs(){
|
||
ignore_user_abort(true);
|
||
set_time_limit(0);
|
||
$id = Cache::store('redis')->get('recjsIDs');
|
||
|
||
if(empty($id)){
|
||
$id = 0;
|
||
}
|
||
|
||
$count = Db::table('rec_js')->where('id','between',[$id,7592360])->count();
|
||
$num = 10000;//每次导入条数
|
||
$limit = ceil($count/$num);
|
||
|
||
for($i=1;$i<=$limit;$i++) {
|
||
|
||
$offet = ($i - 1) * $num;
|
||
|
||
$result = Db::table('rec_js')->field("id,sch_id")->where('id','between',[$id,7592360])->limit($offet, $num)->select();
|
||
|
||
foreach ($result as $key => $val) {
|
||
$resSch = Db::table('yzy_school')->field("is_public")->where('sch_id', '=', $val['sch_id'])->find();
|
||
$resCount = Db::table('rec_js_major')->where('rec_id','=',$val['id'])->find();
|
||
$count = count(json_decode($resCount['professions']));
|
||
Db::table('rec_js')->where([['id', '=', $val['id']]])->update(['is_public' => $resSch['is_public'],'majorNum'=>$count]);
|
||
Cache::store('redis')->set("recjsIDs",$val['id'],36000);
|
||
}
|
||
}
|
||
echo 1;
|
||
}
|
||
|
||
/*
|
||
* 同步数据到yzy_major_score表,sch_name,cost,typeName
|
||
*/
|
||
|
||
public function getSchNameTypeNameToJs(){
|
||
ignore_user_abort(true);
|
||
set_time_limit(0);
|
||
$id = Cache::store('redis')->get('majorScoreID');
|
||
|
||
if(empty($id)){
|
||
$id = 0;
|
||
}
|
||
|
||
$count = Db::table('yzy_major_score')->where('id','between',[$id,3626706])->count();
|
||
$num = 10000;//每次导入条数
|
||
$limit = ceil($count/$num);
|
||
|
||
for($i=1;$i<=$limit;$i++) {
|
||
|
||
$offet = ($i - 1) * $num;
|
||
|
||
$result = Db::table('yzy_major_score')->field("id,sch_id,majorCode")->where('id','between',[$id,3626706])->limit($offet, $num)->select();
|
||
|
||
foreach ($result as $key => $val) {
|
||
$resCode = Db::table('yzy_majors')->field('pid')->where([['level','=',3],['code','=',$val['majorCode']]])->find();
|
||
$relCode = empty($resCode)?Db::table('yzy_majors')->field('pid,title')->where([['level','=',2],['code','=',$val['majorCode']]])->find():Db::table('yzy_majors')->field('title')->where('id','=',$resCode['pid'])->find();
|
||
if(empty($relCode)){
|
||
$relCode['title'] = '';
|
||
}
|
||
$resSch = Db::table('yzy_school')->field("title")->where('sch_id', '=', $val['sch_id'])->find();
|
||
Db::table('yzy_major_score')->where('id','=',$val['id'])->update(['sch_name'=>$resSch['title'],'typeName'=>$relCode['title']]);
|
||
Cache::store('redis')->set("majorScoreID",$val['id'],36000);
|
||
}
|
||
}
|
||
echo 1;
|
||
}
|
||
|
||
|
||
/*
|
||
* 修改rec_zhejiang_majors表,将classify中文转换成数字
|
||
* */
|
||
public function updateCollegeType(){
|
||
$result = Db::table('rec_zhejiang_schs')->field('id,classify')->select();
|
||
$cate = config('setsub.cateArr');
|
||
foreach ($result as $key => $val) {
|
||
$cateid = $cate[$val['classify']];
|
||
|
||
Db::table('rec_zhejiang_schs')->where('id','=',$val['id'])->update(['collegeType'=>$cateid]);
|
||
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
/*
|
||
* 最低分和位次迁移
|
||
* */
|
||
public function updateMajor(){
|
||
$result = Db::table('rec_wen_major')->select();
|
||
|
||
foreach($result as $key=>$val){
|
||
|
||
$res = json_decode($val['professions']);
|
||
foreach($res as $k => $v){
|
||
$data['rec_id'] = $result[$key]['rec_id'];
|
||
$data['title'] = $v->alias;
|
||
$data['code'] = $v->majorCode;
|
||
$resRank = json_decode($v->extended);
|
||
$data['lowestRank'] = $resRank[0]->ls;
|
||
$data['minScore'] = $resRank[0]->ms;
|
||
$data['scoreLineYear'] = $v->scoreLineYear;
|
||
$data['year'] = $v->year;
|
||
$data['enterNum'] = $v->enterNum;
|
||
$data['planNum'] = $v->planNum;
|
||
$data['probability'] = $v->probability;
|
||
Db::table('rec_majors')->insert($data);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|
||
/*
|
||
* 新高考
|
||
* 数据迁移yzy_zj_major_score 新增字段 sch_cate rankOfCn
|
||
* */
|
||
|
||
public function updateMajorScore(){
|
||
$result = Db::table('yzy_zj_major_score')->field("id,sch_id")->select();
|
||
$cate = config('setsub.cateName');
|
||
foreach ($result as $key =>$val){
|
||
$resClass = Db::table('yzy_school')->field('cate_id')->where('sch_id','=',$val['sch_id'])->find();
|
||
$cateName = $cate[$resClass['cate_id']];
|
||
$resRank = Db::table("yzy_school_exts")->field('rankOfCn')->where("sch_id",'=',$val['sch_id'])->find();
|
||
|
||
Db::table('yzy_zj_major_score')->where([['id','=',$val['id']],['sch_id','=',$val['sch_id']]])->update(['classify'=>$cateName,'rankOfCn'=>$resRank['rankOfCn']]);
|
||
}
|
||
}
|
||
|
||
/*
|
||
* school表排名更新
|
||
* */
|
||
|
||
public function updateSchoolRank(){
|
||
$result = Db::table('yzy_school')->field("id,sch_id")->select();
|
||
foreach ($result as $key =>$val){
|
||
|
||
$resRank = Db::table("yzy_school_exts")->field('rankOfCn')->where("sch_id",'=',$val['sch_id'])->find();
|
||
|
||
Db::table('yzy_school')->where([['id','=',$val['id']],['sch_id','=',$val['sch_id']]])->update(['rankOfCn'=>$resRank['rankOfCn']]);
|
||
}
|
||
}
|
||
|
||
|
||
/*
|
||
* 新高考
|
||
* 专业数量同步到院校表
|
||
* */
|
||
public function majorCountToSch(){
|
||
set_time_limit(0);
|
||
$count = Db::table('rec_zhejiang_majors')->count();
|
||
$num = 1000;//每次导入条数
|
||
$limit = ceil($count/$num);
|
||
|
||
for($i=1;$i<=$limit;$i++) {
|
||
$offet = ($i - 1) * $num;
|
||
$result = Db::table('rec_zhejiang_schs')->field("id")->limit($offet, $num)->select();
|
||
foreach ($result as $key => $val) {
|
||
$resMajor = Db::table('rec_zhejiang_schs_majors')->field('professions')->where('rec_id', '=', $val['id'])->find();
|
||
$count = count(json_decode($resMajor['professions']));
|
||
Db::table('rec_zhejiang_schs')->where('id', '=', $val['id'])->update(['majorNum' => $count]);
|
||
}
|
||
}
|
||
}
|
||
|
||
/*
|
||
* 院校logo地址查询
|
||
* */
|
||
public function getSchoolLogos(){
|
||
$result = Db::table('yzy_school')->field("sch_id,logo")->select();
|
||
return api_return('ok',$result);
|
||
}
|
||
|
||
/*
|
||
* 新高考院校表同步is_yldx,is_ylxk
|
||
* */
|
||
|
||
public function ylxkyldxToNewSch(){
|
||
set_time_limit(0);
|
||
$count = Db::table('rec_zhejiang_schs')->count();
|
||
$num = 100;//每次导入条数
|
||
$limit = ceil($count/$num);
|
||
|
||
for($i=1;$i<=$limit;$i++) {
|
||
|
||
$offet = ($i - 1) * $num;
|
||
$result = Db::table('rec_zhejiang_schs')->field("id,collegeId")->limit($offet, $num)->select();
|
||
foreach ($result as $key => $val) {
|
||
$resSch = Db::table('yzy_school')->field("is_yldx,is_ylxk")->where('sch_id', '=', $val['collegeId'])->find();
|
||
Db::table('rec_zhejiang_schs')->where([['id', '=', $val['id']], ['collegeId', '=', $val['collegeId']]])->update(['is_yldx' => $resSch['is_yldx'], 'is_ylxk' => $resSch['is_ylxk']]);
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
/*
|
||
* 新高考專業表同步is_yldx,is_ylxk
|
||
* */
|
||
|
||
public function ylxkyldxToNewSchMajor(){
|
||
|
||
ignore_user_abort(true);
|
||
set_time_limit(0);
|
||
$id = Cache::store('redis')->get('NewSchMajorIDso');
|
||
if(empty($id)){
|
||
$id = 0;
|
||
}
|
||
$count = Db::table('rec_zhejiang_majors')->where('id','>',$id)->count();
|
||
$num = 10000;//每次导入条数
|
||
$limit = ceil($count/$num);
|
||
|
||
for($i=1;$i<=$limit;$i++) {
|
||
$offet = ($i - 1) * $num;
|
||
$result = Db::table('rec_zhejiang_majors')->field("id,collegeId")->where('id','>',$id)->limit($offet, $num)->select();
|
||
try {
|
||
foreach ($result as $key => $val) {
|
||
$resSch = Db::table('yzy_school')->field("is_public")->where('sch_id', '=', $val['collegeId'])->find();
|
||
Db::table('rec_zhejiang_majors')->where([['id', '=', $val['id']]])->update(['is_public' => $resSch['is_public']]);
|
||
Cache::store('redis')->set("NewSchMajorIDso",$val['id'],36000);
|
||
\think\facade\Log::error($val['id']);
|
||
|
||
}
|
||
}catch (\Exception $exception){
|
||
\think\facade\Log::error($exception);
|
||
}
|
||
}
|
||
echo 1;
|
||
}
|
||
|
||
|
||
/*
|
||
* 普通高考院校文科同步雙一流字段和majorNum,public
|
||
* */
|
||
|
||
public function sylMajorNumToWen(){
|
||
ignore_user_abort(true);
|
||
set_time_limit(0);
|
||
$id = Cache::store('redis')->get('recWenIDso');
|
||
|
||
if(empty($id)){
|
||
$id = 0;
|
||
}
|
||
|
||
$count = Db::table('rec_wen')->where('id','between',[$id,8175158])->count();
|
||
$num = 10000;//每次导入条数
|
||
$limit = ceil($count/$num);
|
||
|
||
for($i=1;$i<=$limit;$i++) {
|
||
|
||
$offet = ($i - 1) * $num;
|
||
|
||
$result = Db::table('rec_wen')->field("id,sch_id")->where('id','between',[$id,8175158])->limit($offet, $num)->select();
|
||
|
||
foreach ($result as $key => $val) {
|
||
$resSch = Db::table('yzy_school')->field("is_public")->where('sch_id', '=', $val['sch_id'])->find();
|
||
Db::table('rec_wen')->where([['id', '=', $val['id']]])->update(['is_public' => $resSch['is_public']]);
|
||
Cache::store('redis')->set("recWenIDso",$val['id'],36000);
|
||
}
|
||
}
|
||
echo 1;
|
||
}
|
||
|
||
|
||
|
||
/*
|
||
* 普通高考院校理科同步雙一流字段和majorNum
|
||
* */
|
||
|
||
public function sylMajorNumToLi(){
|
||
|
||
ignore_user_abort(true);
|
||
set_time_limit(0);
|
||
$id = Cache::store('redis')->get('recLikeIDo');
|
||
if(empty($id)){
|
||
$id = 0;
|
||
}
|
||
$count = Db::table('rec_li')->where('id','between',[$id,10491664])->count();
|
||
$num = 10000;//每次导入条数
|
||
$limit = ceil($count/$num);
|
||
|
||
for($i=1;$i<=$limit;$i++) {
|
||
|
||
$offet = ($i - 1) * $num;
|
||
|
||
$result = Db::table('rec_li')->field("id,sch_id")->where('id','between',[$id,10491664])->limit($offet, $num)->select();
|
||
|
||
foreach ($result as $key => $val) {
|
||
$resSch = Db::table('yzy_school')->field("is_public")->where('sch_id', '=', $val['sch_id'])->find();
|
||
Db::table('rec_li')->where([['id', '=', $val['id']]])->update(['is_public' => $resSch['is_public']]);
|
||
Cache::store('redis')->set("recLikeIDo",$val['id'],36000);
|
||
|
||
}
|
||
|
||
}
|
||
echo 1;
|
||
}
|
||
|
||
|
||
} |