<?php
function foodOracle(array $rows,array $categories,string $method,int $stage):array {
 $nutrients=['energy','carbohydrate','protein','fat','sfa','mufa','pufa','cholesterol','va','renieratene','retinol','vb1','vb2','vpp','vc','ve','folic_acid','biotin','choline','sodium','calcium','magnesium','iron','zinc','selenium','purine','dietary_fiber','moisture','ash','iodine','phosphorus','cuprum','manganese','pantothenic_acid','potassium','gi','gl'];$format=static function($row)use($nutrients){foreach($nutrients as $k)if(array_key_exists($k,$row)&&is_numeric($row[$k])&&is_finite((float)$row[$k])&&abs((float)$row[$k])<100000000)$row[$k]=sprintf('%.2f',(float)$row[$k]);return $row;};
 if($method==='readById'){$row=$rows[0]??null;if($row!==null){$row=$format($row);$names=array_column($categories,'name','id');foreach(['category'=>'category_name','minute_sort'=>'minute_sort_name','reclassify'=>'reclassify_name']as $k=>$out)$row[$out]=!empty($row[$k])?($names[$row[$k]]??''):'';}return ['code'=>0,'message'=>'请求成功','data'=>$row];}
 if($method==='lists'){$fields=['id','name','edible_part','energy','carbohydrate','protein','fat','dietary_fiber','cooking_food','category','minute_sort','sub_name','create_by','create_time'];$out=[];foreach($rows as $row){$one=[];foreach($fields as $f)$one[$f]=$row[$f];$out[]=$format($one);}return ['code'=>0,'message'=>'请求成功','data'=>['rows'=>$out,'total'=>count($rows)]];}
 if($stage===4)return ['code'=>1,'message'=>'可食部分取值范围是1-100','data'=>''];return ['code'=>0,'message'=>['add'=>'添加成功','update'=>'修改成功','delete'=>'删除成功'][$method],'data'=>$method==='add'?['id'=>(string)$rows[0]['id']]:[]];
}
