Files
repo-backend/app/Http/Controllers/Api/DefaultController.php
T

417 lines
17 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use App\Bank;
use App\Menu;
use App\FalseData;
use App\Market;
use App\Setting;
use App\HistoricalData;
use App\Users;
use App\Utils\RPC;
use App\DAO\UploaderDAO;
class DefaultController extends Controller
{
public function falseData()
{
$limit = Input::get('limit', '12');
$page = Input::get('page', '1');
$old = date("Y-m-d", strtotime("-1 day"));
$old_time = strtotime($old);
$time = strtotime(date("Y-m-d"));
$yesterday = FalseData::where('time', ">", $old_time)->where("time", "<", $time)->sum('price');
$today = FalseData::where('time', ">", $time)->sum('price');
$data = FalseData::orderBy('id', 'DESC')->paginate($limit);
return $this->success(array(
"data" => $data->items(),
"limit" => $limit,
"page" => $page,
"yesterday" => $yesterday,
"today" => $today
));
}
public function quotation()
{
$result = Market::limit(20)->get();
return $this->success(array(
"coin_list" => $result
));
}
public function historicalData()
{
$day = HistoricalData::where("type", "day")->orderBy('id', 'asc')->get();
$week = HistoricalData::where("type", "week")->orderBy('id', 'asc')->get();
$month = HistoricalData::where("type", "month")->orderBy('id', 'asc')->get();
return $this->success(array(
"day" => $day,
"week" => $week,
"month" => $month
));
}
public function quotationInfo()
{
$id = Input::get("id");
if (empty($id))
return $this->error("参数错误");
// $coin_list = RPC::apihttp("https://api.coinmarketcap.com/v2/ticker/".$id."/");
$coin_list = Market::find($id);
// $coin_list = @json_decode($coin_list,true);
return $this->success($coin_list);
}
public function dataGraph()
{
$data = Setting::getValueByKey("chart_data");
if (empty($data))
return $this->error("暂无数据");
$data = json_decode($data, true);
return $this->success(array(
"data" => array(
$data["time_one"],
$data["time_two"],
$data["time_three"],
$data["time_four"],
$data["time_five"],
$data["time_six"],
$data["time_seven"]
),
"value" => array(
$data["price_one"],
$data["price_two"],
$data["price_three"],
$data["price_four"],
$data["price_five"],
$data["price_six"],
$data["price_seven"]
),
"all_data" => $data
));
}
public function index()
{
$coin_list = RPC::apihttp("https://api.coinmarketcap.com/v2/ticker?limit=10");
$coin_list = @json_decode($coin_list, true);
if (! empty($coin_list["data"])) {
foreach ($coin_list["data"] as &$d) {
if ($d["total_supply"] > 10000) {
$d["total_supply"] = substr($d["total_supply"], 0, - 4) . "万";
}
}
}
return $this->success(array(
"coin_list" => $coin_list["data"]
));
}
//上传NFT文件
public function uploadNFT(Request $request)
{
/* 对图像文件进行严格检测 */
// $arr = ['image/jpg','image/jpeg','image/png','image/gif'];
// $file = $request->file('file');
// $imginfo = getimagesize($file->getRealPath());
// if(empty($imginfo) || empty($imginfo['bits']) || !in_array($imginfo['mime'],$arr)){
// return $this->error("wrong format");
// }
if (! empty($_FILES["file"]["error"])) {
return $this->error($_FILES["file"]["error"]);
} else {
if ($_FILES["file"]["size"] > 10485760) {
return $this->error("文件大小超出");
}
$type = strtolower(substr($_FILES["file"]["name"], strrpos($_FILES["file"]["name"], '.') + 1)); // 得到文件类型,并且都转化成小写
$wenjian_name = time() . rand(0, 999999) . "." . $type;
$filename = "./upload_nft/" . $wenjian_name;
// 转码,把utf-8转成gb2312,返回转换后的字符串, 或者在失败时返回 FALSE。
$filename = iconv("UTF-8", "gb2312", $filename);
// 检查文件或目录是否存在
if (file_exists($filename)) {
return $this->error("该文件已存在");
} else {
// var_dump($filename);die;
move_uploaded_file($_FILES["file"]["tmp_name"], $filename);
return $this->success("/upload_nft/" . $wenjian_name);
}
}
}
public function upload(Request $request)
{
/* 对图像文件进行严格检测 */
$arr = ['image/jpg','image/jpeg','image/png'];
$file = $request->file('file');
$imginfo = getimagesize($file->getRealPath());
if(empty($imginfo) || empty($imginfo['bits']) || !in_array($imginfo['mime'],$arr)){
return $this->error("wrong format");
}
if (! empty($_FILES["file"]["error"])) {
return $this->error($_FILES["file"]["error"]);
} else {
// if($_FILES["file"]["size"] > 204800){
// return $this->error("文件大小超出");
// }
if ($_FILES["file"]["size"] > 10485760) {
return $this->error("文件大小超出");
}
// return $this->success($_FILES["file"]["type"]);
if ($_FILES["file"]["type"] == "image/jpg" || $_FILES["file"]["type"] == "image/png" || $_FILES["file"]["type"] == "image/jpeg") {
$type = strtolower(substr($_FILES["file"]["name"], strrpos($_FILES["file"]["name"], '.') + 1)); // 得到文件类型,并且都转化成小写
$wenjian_name = time() . rand(0, 999999) . "." . $type;
// 防止文件名重复
// 超哥写的上传路径
// $url = config('app.images_url');
// $url = \think\Env::get('IMAGS_URL','./upload/');
// $filename = $url.$wenjian_name;
// $filename ="/www/wwwroot/imgs.bitfor-ex.com/upload/".$wenjian_name;
$filename = "./upload/" . $wenjian_name;
// 转码,把utf-8转成gb2312,返回转换后的字符串, 或者在失败时返回 FALSE。
$filename = iconv("UTF-8", "gb2312", $filename);
// 检查文件或目录是否存在
if (file_exists($filename)) {
return $this->error("该文件已存在");
} else {
// var_dump($filename);die;
move_uploaded_file($_FILES["file"]["tmp_name"], $filename);
return $this->success("/upload/" . $wenjian_name);
}
} else {
return $this->error("文件类型不对");
}
}
}
public function upload_new(Request $request)
{
// return 2453;
/* 对图像文件进行严格检测 */
$arr = ['image/jpg','image/jpeg','image/png'];
$file = $request->file('file');
$imginfo = getimagesize($file->getRealPath());
if(empty($imginfo) || empty($imginfo['bits']) || !in_array($imginfo['mime'],$arr)){
return $this->error("wrong format");
}
if (! empty($_FILES["file"]["error"])) {
return $this->error($_FILES["file"]["error"]);
} else {
// if($_FILES["file"]["size"] > 204800){
// return $this->error("文件大小超出");
// }
if ($_FILES["file"]["size"] > 10485760) {
return $this->error("文件大小超出");
}
// return $this->success($_FILES["file"]["type"]);
if ($_FILES["file"]["type"] == "image/jpg" || $_FILES["file"]["type"] == "image/png" || $_FILES["file"]["type"] == "image/jpeg") {
$type = strtolower(substr($_FILES["file"]["name"], strrpos($_FILES["file"]["name"], '.') + 1)); // 得到文件类型,并且都转化成小写
$wenjian_name = time() . rand(0, 999999) . "." . $type;
// 防止文件名重复
// 超哥写的上传路径
// $url = config('app.images_url');
// $url = \think\Env::get('IMAGS_URL','./upload/');
// $filename = $url.$wenjian_name;
// $filename ="/www/wwwroot/imgs.bitfor-ex.com/upload/".$wenjian_name;
$filename = "./upload/" . $wenjian_name;
// 转码,把utf-8转成gb2312,返回转换后的字符串, 或者在失败时返回 FALSE。
$filename = iconv("UTF-8", "gb2312", $filename);
// 检查文件或目录是否存在
if (file_exists($filename)) {
return $this->error("该文件已存在");
} else {
// var_dump($filename);die;
move_uploaded_file($_FILES["file"]["tmp_name"], $filename);
return $this->success("/upload/" . $wenjian_name);
}
} else {
return $this->error("文件类型不对");
}
}
/* 对图像文件进行严格检测 */
$arr = ['image/jpg','image/jpeg','image/png'];
$file = $request->file('file');
$imginfo = getimagesize($file->getRealPath());
if(empty($imginfo) || empty($imginfo['bits']) || !in_array($imginfo['mime'],$arr)){
return $this->error("wrong format");
}
if (! empty($_FILES["file"]["error"])) {
return $this->error($_FILES["file"]["error"]);
} else {
// if($_FILES["file"]["size"] > 204800){
// return $this->error("文件大小超出");
// }
if ($_FILES["file"]["size"] > 10485760) {
return $this->error("文件大小超出");
}
// return $this->success($_FILES["file"]["type"]);
if ($_FILES["file"]["type"] == "image/jpg" || $_FILES["file"]["type"] == "image/png" || $_FILES["file"]["type"] == "image/jpeg") {
$type = strtolower(substr($_FILES["file"]["name"], strrpos($_FILES["file"]["name"], '.') + 1)); // 得到文件类型,并且都转化成小写
$wenjian_name = time() . rand(0, 999999) . "." . $type;
// 防止文件名重复
// 超哥写的上传路径
$url = config('app.images_url');
// $url = \think\Env::get('IMAGS_URL','./upload/');
$filename = $url.$wenjian_name;
// $filename ="/www/wwwroot/imgs.bitfor-ex.com/upload/".$wenjian_name;
// $filename = "./upload/" . $wenjian_name;
// 转码,把utf-8转成gb2312,返回转换后的字符串, 或者在失败时返回 FALSE。
$filename = iconv("UTF-8", "gb2312", $filename);
// 检查文件或目录是否存在
if (file_exists($filename)) {
return $this->error("该文件已存在");
} else {
// var_dump($_FILES["file"]["tmp_name"]);die;
move_uploaded_file($_FILES["file"]["tmp_name"], $filename);
return $this->success("/upload/" . $wenjian_name);
}
} else {
return $this->error("文件类型不对");
}
}
}
// ios 文件上传
public function upload2(Request $request)
{
$base64_image_content = $request->input('base64_file', '');
$res = self::base64_image_content($base64_image_content);
if (! $res) {
return $this->error('上传失败');
}
return $this->success($res);
}
/* base64格式编码转换为图片并保存对应文件夹 */
public function base64_image_content($base64_image_content)
{
// 匹配出图片的格式
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)) {
$type = $result[2];
if (! in_array($type, [
'jpg',
'jpeg',
'png'
])) {
return false;
}
// $new_file = $path."/".date('Ymd',time())."/";
$path = '/upload/' . date('Ymd') . '/';
$new_file = public_path() . $path;
if (! file_exists($new_file)) {
// 检查是否有该文件夹,如果没有就创建,并给予最高权限
mkdir($new_file, 0700);
}
$filename = time() . rand(0, 999999) . ".{$type}";
$full_file = $new_file . $filename;
if (file_put_contents($full_file, base64_decode(str_replace($result[1], '', $base64_image_content)))) {
return url('') . $path . $filename;
} else {
return false;
}
} else {
return false;
}
}
public function getNode(\Illuminate\Http\Request $request)
{
$user_id = $request->get('user_id', 0);
$show_message["real_teamnumber"] = Users::find($user_id)->real_teamnumber;
$show_message["top_upnumber"] = Users::find($user_id)->top_upnumber;
$show_message["today_real_teamnumber"] = Users::find($user_id)->today_real_teamnumber;
$account_number = $request->get('account_number', null);
if (! empty($account_number)) {
$user_id_search = Users::where('account_number', $account_number)->first();
if (! empty($user_id_search)) {
$user_id = $user_id_search->id;
} else {
$user_id = 0;
}
}
// if (empty($user_id)){
$users = Users::where('parent_id', $user_id)->get();
$results = array();
foreach ($users as $key => $user) {
$results[$key]['name'] = $user->account_number;
$results[$key]['id'] = $user->id;
$results[$key]['parent_id'] = $user->parent_id;
}
$data["show_message"] = $show_message;
$data["results"] = $results;
return $this->success($data);
}
public function getVersion()
{
$version = Setting::getValueByKey('version', '1.0');
return $this->success($version);
}
public function getBanks()
{
$result = Bank::all();
return $this->success($result);
}
public function language(Request $request)
{
$lang = $request->get('lang', 'zh');
session()->put('lang', $lang);
return $this->success($lang);
}
public function getMenu()
{
$menu = Menu::where('show', 1)->orderBy('sort','asc')->get();
return $this->success($menu);
}
public function getSiteConfig(Request $request) {
// $user_id = Users::getUserId();
$user_id = $request->get('user_id', 1);
$model = Setting::whereIn('key', ['site_name', 'site_logo','site_pc_logo', 'down_logo','open_url','sharar_radio','reverse_radio','email_radio'
,'zxkf_radio','zxkf_url','telegram_url','telegram_radio','skype_radio','skype_url','whatsApp_radio','DAPP_DEMO','H5_DEMO','example_radio'
,'whatsApp_url','line_radio','line_url','jie_radio','jie_url','hk_radio','hk_url','bank_flag','image_server_url','tk_radio','yzm_radio','ios_apk_download_url','apk_download_url','mobile_register','web_mail','facebook','twitter','facebook_url','twitter_url','password_radio'
])->get();
$settings = [];
foreach ($model as $setting) {
$settings[$setting->key] = $setting->value;
}
$settings['code'] = Users::find($user_id)['extension_code'];
return $this->success($settings);
}
public function US(){
return $this->success('success');
//$this->success(json_decode(file_get_contents("https://www.mycurrency.net/US.json"),true));
}
// public function getlanguage(\Request $request)
// {
// $lang=session()->get('lang');
// return $this->success($lang);
// }
}
?>