toArray(); if (empty($data) and $type == OBJ) $options = $options | JSON_FORCE_OBJECT; return json(['code' => $code, 'msg' => $msg, 'data' => $data], $options); } /** * 标准成功返回 列表 * @param string $msg * @param string $data */ function success($msg = '', $data = [], $type = '') { if (empty($msg)) $msg = trans('Success'); return reMsg($msg, \app\common\ReturnCode::SUCCESS, $data, $type); } /** * @param string $msg * @param int $code * @param array $data * @param string $return_type * @return array|\think\response\Json */ function apiResponseSuccess( $msg = 'Success',$code = 200,$data = [] ,$return_type = 'json') { $result = [ 'msg' => $msg, 'code' => $code, 'data' => empty($data) ? [] : $data, ]; return $return_type == 'json' ? json($result) : $result; } /** * 标准错误返回 * @param string $msg * @param string $data */ function error($msg = '', $data = null, $type = OBJ) { if (empty($msg)) $msg = trans('Error'); return reMsg($msg, \app\common\ReturnCode::ERROR, $data, $type); } /** * @param array $fields * @param string $type * @return array|mixed * 验证请求必须字段,并返回所有请求数据 */ function checkField(array $fields = [], $type = 'post') { $request = request(); $data = []; if ($type == 'post') { $data = $request->post(); } else if ($type == 'get') { $data = $request->get(); } else if ($type == 'request') { $data = $request->request(); } if ($fields) { foreach ($fields as $field) { if (!isset($data[$field])) { return error( '参数异常'); } else if ($field == 'phone') { if (!preg_match('/^1[23456789]\d{9}$/', $data['phone'])) { return error( '请输入正确的手机号码'); } } } } return $data; } /** * 将对象转换成数组 * @param $array * @return array */ function objectToArray(array $array) { if (is_object($array)) { $array = (array)$array; } if (is_array($array)) { foreach ($array as $key => $value) { $array[$key] = objectToArray($value); } } return $array; } /** * 无限极分类 * @param $list * @param string $pk * @param string $pid * @param string $child * @param int $root * @return array */ function makeTree($list, $pk = 'id', $pid = 'pid', $child = 'son', $root = 0) { $tree = []; $packData = []; foreach ($list as $data) { $packData[$data[$pk]] = $data; } foreach ($packData as $key => $val) { if ($val[$pid] == $root) { $tree[] =& $packData[$key]; } else { $packData[$val[$pid]][$child][] =& $packData[$key]; } } return $tree; } /** * 根据开始时间和结束时间获取中间时间 * @param $beginTime * @param $endTime * @return array */ function periodTime($beginTime, $endTime):array { $i = 0; $arr = []; while ($beginTime <= $endTime) { $arr[$i] = date('Y-m-d', $beginTime); //$arr[$i] = $beginTime; $beginTime = strtotime('+1 day', $beginTime); $i++; } return $arr; }