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.

86 lines
2.6 KiB
PHP

<?php
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
class Yz{
public static function echo($data=[],$code=200){
$result=array();
$result['code']=$code;
$result['data']=$data;
return response()->json($result)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
}
public static function echoError($msg){
$result=array();
$result['status']='no';
$result['msg']=$msg;
return response()->json($result)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
}
public static function echoError1($msg){
$result=array();
$result['code']=200;
$result['status']=false;
$result['msg']=$msg;
return response()->json($result)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
}
public static function Return($status,$msg,$data=[]){
$result=array();
$result['code']=200;
$result['status']=$status;
$result['msg']=$msg;
$result['data']=$data;
return $result;
}
//检测系统状态
public static function GetSysConfigs(array $arr)
{
if (empty($arr)) {
throw new \Exception('参数错误');
}
$allConfigs = Cache::remember('all_system_configs', now()->addMinutes(5), function () {
return DB::table('configs')->get();
});
$requiredLabels = array_flip($arr);
return $allConfigs->filter(function ($config) use ($requiredLabels) {
return isset($requiredLabels[$config->label]);
});
}
public static function systemStatusCheck(){
$configs = self::GetSysConfigs(['系统状态']);
$configMap = $configs->pluck('value', 'label')->toArray();
// 1. 检查系统总开关
if (isset($configMap['系统状态']) && $configMap['系统状态'] != 1) {
return ['status'=>false,'msg'=>'系统维护中'];
}
return ['status'=>true,'msg'=>'系统正常'];
}
public static function DayCutCheck(){
$configs = self::GetSysConfigs(['日切开始时间']);
$configMap = $configs->pluck('value', 'label')->toArray();
// 2. 检查日切时间
if (isset($configMap['日切开始时间'])) {
$now = Carbon::now();
$cutTimeStr = $configMap['日切开始时间'];
$cutTime = Carbon::createFromFormat('H:i', $cutTimeStr)
->setDate($now->year, $now->month, $now->day);
if ($now->gte($cutTime)) {
return ['status'=>false,'msg'=>'系统结算中'];
}
}
return ['status'=>true,'msg'=>'系统正常'];
}
}