You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.2 KiB
PHP
63 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API\Internal;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Database\Schema\Blueprint;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
|
class SiXinPushController extends Controller
|
|
{
|
|
public static $request;
|
|
public function PushInfo(Request $request){
|
|
$key = $request->query('key');
|
|
$code = $request->query('code');//推送类型 "UpdateInfo".套餐、项目、分组 信息变更 "report".报告推送 "pdf".推送pdf
|
|
$content = $request->input('content');
|
|
$codeMark=[
|
|
'updateInfo'=>'套餐项目分组',
|
|
'report'=>'报告',
|
|
'pdf'=>'pdf文件'
|
|
];
|
|
if (!array_key_exists($code, $codeMark)) return \Yz::echoError1("code不正确");
|
|
if(isset($key) && $key=="xFgq6WzWFNYL6QwKKLtxqYn2NfQnNu3a"){
|
|
self::RequestLog('',$content,$code,$codeMark[$code]);
|
|
return \Yz::Return(true,"接收完成",$code);
|
|
}else{
|
|
return \Yz::echoError1("密钥错误");
|
|
}
|
|
}
|
|
|
|
public static function RequestLog($url, $post_data, $code, $mark)
|
|
{
|
|
self::CheckTableName();
|
|
|
|
$post_data = json_encode($post_data, JSON_UNESCAPED_UNICODE);
|
|
self::$request->code = $code;
|
|
self::$request->mark = $mark;
|
|
self::$request->post_data = $post_data == '[]' ? '{}' : $post_data;
|
|
self::$request->request_url = $url;
|
|
self::$request->save();
|
|
}
|
|
|
|
public static function CheckTableName()
|
|
{
|
|
$table_name = 'zz_sixin_push_log_' . date('ym');
|
|
$table_count = DB::select('select count(1) as c from information_schema.TABLES where table_schema = ? and table_name = ?', [env('DB_DATABASE'), $table_name])[0];
|
|
if ($table_count->c === 0) {
|
|
Schema::create($table_name, function (Blueprint $table) {
|
|
$table->id();
|
|
$table->string('code', 50)->index();
|
|
$table->string('mark', 50)->index();
|
|
$table->text('post_data');
|
|
$table->text('response_data')->nullable();
|
|
$table->string('request_url', 300);
|
|
$table->timestamps();
|
|
});
|
|
}
|
|
self::$request = new \App\Models\PEISLog();
|
|
self::$request->setTable($table_name);
|
|
}
|
|
}
|