first commit

This commit is contained in:
编码猿
2024-09-27 01:32:49 +08:00
commit 28ebe05a64
7399 changed files with 1174529 additions and 0 deletions

View File

@@ -0,0 +1,355 @@
<?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;
}
}