Files
CompanyProject/芳林公司项目/www.zhiyuanhelp.com/application/admin/controller/Shell.php
2024-09-27 01:32:49 +08:00

355 lines
12 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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;
}
}