308 lines
8.8 KiB
PHP
308 lines
8.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Models\Area;
|
|
use App\Models\DrawMoney;
|
|
use App\Models\Merchant;
|
|
use App\Models\Order;
|
|
use App\Models\Shop;
|
|
use App\Models\ShopServer;
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
use Ixudra\Curl\Facades\Curl;
|
|
|
|
class ApiController extends BaseController
|
|
{
|
|
//
|
|
public function index($type, $name, Request $request)
|
|
{
|
|
|
|
switch ($type) {
|
|
case 'map':
|
|
return $this->map($name);
|
|
break;
|
|
case 'area':
|
|
return $this->area($request);
|
|
break;
|
|
case 'user':
|
|
return $this->uerList($name, $request);
|
|
break;
|
|
case 'shop':
|
|
return $this->shopList($name, $request);
|
|
break;
|
|
case 'shop_and_user':
|
|
return $this->shopUserAndList($name, $request);
|
|
break;
|
|
case 'merchant':
|
|
return $this->merchantList($name, $request);
|
|
break;
|
|
case 'create_key':
|
|
return $this->createKey($request);
|
|
break;
|
|
case 'orderMp3':
|
|
return $this->orderCheck($request);
|
|
break;
|
|
case 'draw':
|
|
return $this->orderDraw($request);
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
public function orderCheck()
|
|
{
|
|
//120
|
|
$vedio = [];
|
|
$pay = Order::whereIn('pay_type', config('adconfig.guma_type'))->where('pay_status', 0)->where('status',0)->get();
|
|
$config_type=config('adconfig.pay_type');
|
|
$mp3_str='';
|
|
if (count($pay)) {
|
|
foreach ($pay as $k => $v) {
|
|
$str=$mp3_str.=$config_type[$v->pay_type].'充值'.$v->order_money.'元';
|
|
$data = [
|
|
'type' => 'tns',
|
|
'spd' => '5',
|
|
'pit' => '5'
|
|
, 'vol' => '5'
|
|
, 'per' => '0'
|
|
,'tex'=>$str
|
|
];
|
|
|
|
$vedio[]=[
|
|
'mp3'=>'http://tts.baidu.com/text2audio?lan=zh&per=4&spd=5&pit=5&type=tns&ie=UTF-8&text='.urlencode($str),
|
|
'msg'=>$str,
|
|
'error'=>0
|
|
];
|
|
}
|
|
}
|
|
|
|
$data=[
|
|
'error'=>0,
|
|
'msg'=>$mp3_str,
|
|
'data'=>$vedio
|
|
];
|
|
return response()->json($data);
|
|
}
|
|
public function orderDraw()
|
|
{
|
|
//120
|
|
$vedio = [];
|
|
$pay = DrawMoney::where('status',0)->get();
|
|
|
|
$mp3_str='';
|
|
if (count($pay)) {
|
|
foreach ($pay as $k => $v) {
|
|
$str=$mp3_str.='商户提现'.$v->draw_money;
|
|
|
|
|
|
$vedio[]=[
|
|
'mp3'=>'http://tts.baidu.com/text2audio?lan=zh&per=4&spd=5&pit=5&type=tns&ie=UTF-8&text='.urlencode($str),
|
|
'msg'=>$str,
|
|
'error'=>0
|
|
];
|
|
}
|
|
}
|
|
|
|
$data=[
|
|
'error'=>0,
|
|
'msg'=>$mp3_str,
|
|
'data'=>$vedio
|
|
];
|
|
return response()->json($data);
|
|
}
|
|
|
|
public function createKey(Request $request)
|
|
{
|
|
if ($request->input('type_name') == 'appkey') {
|
|
$number = date('YmdHis') . str_random(6);
|
|
|
|
}
|
|
if ($request->input('type_name') == 'token') {
|
|
$number = str_random(32);
|
|
|
|
}
|
|
return response(['error' => 0, 'msg' => '生成成功', 'number' => $number]);
|
|
}
|
|
|
|
public function map($name)
|
|
{
|
|
$this->setViewPath('map', $name);
|
|
return $this->display();
|
|
}
|
|
|
|
public function area($request)
|
|
{
|
|
$input_type = $request->input('input_type', 'option');
|
|
$select_id = $request->input('select_id', '');
|
|
$list = Area::where('parent_id', $request->input('id', 0))->pluck('name', 'id')->toArray();
|
|
$html_str = '';
|
|
switch ($input_type) {
|
|
case 'option':
|
|
$html_str = ' <option value=""></option>';
|
|
foreach ($list as $k => $v) {
|
|
$html_str .= '<option ' . ($select_id == $k ? "selected" : "") . ' value="' . $k . '">' . $v . '</option>';
|
|
}
|
|
return ['data' => $html_str];
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
protected function uerList($name, Request $request)
|
|
{
|
|
$json = $request->input('json');
|
|
|
|
if ($json) {
|
|
|
|
return $this->apiJson(new User(), 'user', $request);
|
|
}
|
|
|
|
$this->setViewPath('user', 'index');
|
|
|
|
return $this->display(['group_type' => $name]);
|
|
}
|
|
|
|
protected function merchantList($name, Request $request)
|
|
{
|
|
$json = $request->input('json');
|
|
$level = $request->input('level');
|
|
if ($json) {
|
|
if ($level == 2) {
|
|
$level_arr = [
|
|
1
|
|
];
|
|
} else {
|
|
$level_arr = [
|
|
1, 2
|
|
];
|
|
}
|
|
return $this->apiJson((new Merchant())->whereIn('level', $level_arr), 'merchant', $request);
|
|
}
|
|
|
|
$this->setViewPath('merchant', 'index');
|
|
|
|
return $this->display(['group_type' => $name, 'level' => $level]);
|
|
}
|
|
|
|
protected function shopUserAndList($name, Request $request)
|
|
{
|
|
$json = $request->input('json');
|
|
|
|
if ($json) {
|
|
|
|
return $this->apiJson(new Shop(), 'shop', $request);
|
|
}
|
|
|
|
$this->setViewPath('shop_and_user', 'index');
|
|
|
|
return $this->display(['group_type' => $name,]);
|
|
}
|
|
|
|
protected function shopServerList($name, Request $request)
|
|
{
|
|
$json = $request->input('json');
|
|
|
|
if ($json) {
|
|
|
|
return $this->apiJson(new ShopServer(), 'shop_server', $request);
|
|
}
|
|
|
|
$this->setViewPath('shop_server', 'index');
|
|
|
|
return $this->display(['group_type' => $name]);
|
|
}
|
|
|
|
public function parseJson($type, $result)
|
|
{
|
|
$narr = [];
|
|
switch ($type) {
|
|
case 'user':
|
|
foreach ($result as $k => $v) {
|
|
$v['sex'] = config('adconfig.sex')[$v['sex']];
|
|
$v['thumb'] = picurl($v['thumb']);
|
|
$v['type_name'] = config('adconfig.user_group')[$v['type']];
|
|
$narr[] = $v;
|
|
}
|
|
|
|
break;
|
|
default:
|
|
foreach ($result as $k => $v) {
|
|
if (isset($v['thumb'])) {
|
|
$v['thumb'] = picurl($v['thumb']);
|
|
}
|
|
$narr[] = $v;
|
|
}
|
|
break;
|
|
}
|
|
return $narr;
|
|
}
|
|
|
|
public function parseSearch($type, $request)
|
|
{
|
|
|
|
$search_arr = [];
|
|
switch ($type) {
|
|
case 'user':
|
|
$name = $request->input('name', '');
|
|
$search_arr = [
|
|
'type' => [
|
|
'type' => '=',
|
|
'value' => $request->input('group_type') == 'all' ? '' : $request->input('group_type')
|
|
],
|
|
'name' => [
|
|
'type' => 'likesql',
|
|
'value' => $name ? "nickname like '%" . $name . "%' or mobile like '%" . $name . "%' or real_name like '%" . $name . "%'" : ""
|
|
]
|
|
|
|
];
|
|
break;
|
|
case 'merchant':
|
|
$name = $request->input('name', '');
|
|
$search_arr = [
|
|
|
|
'name' => [
|
|
'type' => 'likesql',
|
|
'value' => $name ? "realname like '%" . $name . "%' or mobile like '%" . $name . "%' or realname like '%" . $name . "%'" : ""
|
|
]
|
|
|
|
];
|
|
break;
|
|
|
|
break;
|
|
}
|
|
return $search_arr;
|
|
}
|
|
|
|
public function apiJson($model, $type, Request $request)
|
|
{
|
|
$offset = $request->input('page', 1);
|
|
$pagesize = $request->input('limit', 1);
|
|
$offset = ($offset - 1) * $pagesize;
|
|
$order_id = $request->input('sort', 'id');
|
|
$order_type = $request->input('order', 'desc');
|
|
$debug = $request->input('debug', 0);
|
|
$search_arr = $this->parseSearch($type, $request);
|
|
$model = $model;
|
|
$model = $this->searchKey($model, $search_arr, 2);
|
|
$total = $model->count();
|
|
$result = $model->skip($offset)->orderBy($order_id, $order_type)->orderBy('id', 'desc')->take($pagesize)->get();;
|
|
$narr = [];
|
|
$narr = $this->parseJson($type, $result);
|
|
$json = [
|
|
"status" => 1,
|
|
'code' => $total > 0 ? 0 : 1,
|
|
'msg' => $total > 0 ? '请求数据成功' : '暂无数据',
|
|
'count' => $total,
|
|
'data' => $narr
|
|
];
|
|
|
|
if ($debug) {
|
|
return $this->jsonDebug($json);
|
|
}
|
|
|
|
return response()->json($json);
|
|
}
|
|
}
|