sifangpay/app/Http/Controllers/Admin/ApiController.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);
}
}