first commit
This commit is contained in:
28
app/Http/Controllers/AjaxResponse.php
Normal file
28
app/Http/Controllers/AjaxResponse.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
trait AjaxResponse
|
||||
{
|
||||
|
||||
public function success($message = '', $redirect = null)
|
||||
{
|
||||
return [
|
||||
'status' => 'SUCCESS',
|
||||
'statusCode' => 200,
|
||||
'message' => $message,
|
||||
'redirect' => $redirect,
|
||||
];
|
||||
}
|
||||
|
||||
public function error($message = '', $redirect = null)
|
||||
{
|
||||
return [
|
||||
'status' => 'ERROR',
|
||||
'statusCode' => 400,
|
||||
'message' => $message,
|
||||
'redirect' => $redirect,
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
27
app/Http/Controllers/Controller.php
Normal file
27
app/Http/Controllers/Controller.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Auth;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
|
||||
class Controller extends BaseController
|
||||
{
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests, AjaxResponse;
|
||||
|
||||
public function checkUserAuth($identity_id = 0)
|
||||
{
|
||||
$url = 'wxlogin';
|
||||
if ($identity_id > 0) {
|
||||
$url = 'login';
|
||||
}
|
||||
|
||||
if (!Auth::user() || ($identity_id && Auth::user()->identity_id != $identity_id)) {
|
||||
return route($url) . '?callback=' . url()->current();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
20
app/Http/Controllers/CouponController.php
Normal file
20
app/Http/Controllers/CouponController.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
class CouponController extends Controller
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
$tick = 'YSD' . date('ymdHi') . mt_rand(100, 999);
|
||||
$tick = strtotime(date('YmdHi', time())) . substr(microtime(), 2, 6) . sprintf('%03d', rand(0, 999));
|
||||
$data = [
|
||||
'code' => 200,
|
||||
'couponCode' => $tick,
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
||||
27
app/Http/Controllers/IndexController.php
Normal file
27
app/Http/Controllers/IndexController.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Auth;
|
||||
use Illuminate\Http\Request;
|
||||
use Image;
|
||||
use QrCode;
|
||||
|
||||
class IndexController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('index.index');
|
||||
}
|
||||
|
||||
public function makeCode(Request $request)
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
$shareimg = Image::make(QrCode::size(3000)->format('png')->margin(0)->generate(route('checkcode', $user)))
|
||||
->resize(240, 240)
|
||||
->encode('data-url');
|
||||
|
||||
return view('index.makeCode', compact('shareimg', 'user'));
|
||||
}
|
||||
}
|
||||
45
app/Http/Controllers/SkyxuController.php
Normal file
45
app/Http/Controllers/SkyxuController.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Api\Controllers\ApiResponse;
|
||||
|
||||
class SkyxuController
|
||||
{
|
||||
use ApiResponse;
|
||||
|
||||
public function index()
|
||||
{
|
||||
$postData = [
|
||||
'server_id' => '20200103490104',
|
||||
'key' => 'rRhHO7Jbao2SSxAH8VygV4DgS4L2WESa',
|
||||
'addcode' => '69198663',
|
||||
'sign' => '6cd2232e9aa853219a0dff80430567796d0ae33d6c0289dfa835813def08ed8c',
|
||||
'data' => 'DBEgnb5HidvKQDyxL0BAcCwuMkVdbTZRVu4mxwwzAM5TWj\/HAQfcrH9VzcgdG42lINsHYvI2Tv+MJfyP9eXVEQ==',
|
||||
];
|
||||
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "http://pa.cnskl.com/api/V1/user/freezecoupon",
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_POSTFIELDS => $postData,
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Content-Type: multipart/form-data;",
|
||||
),
|
||||
));
|
||||
|
||||
$response = curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
echo $response;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
41
app/Http/Controllers/StorageController.php
Normal file
41
app/Http/Controllers/StorageController.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use File;
|
||||
use Illuminate\Http\Request;
|
||||
use Storage;
|
||||
|
||||
class StorageController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$File = $request->file('image');
|
||||
$oldName = $File->getClientOriginalName();
|
||||
$hash = File::hash($File->path());
|
||||
$size = File::size($File->path());
|
||||
if ($size > (10 * 1024 * 1024)) {
|
||||
return [
|
||||
'code' => 0,
|
||||
'message' => '文件不能超过10M',
|
||||
];
|
||||
}
|
||||
$pathUrl = 'images' . date('/Y-m/d');
|
||||
$fileName = $hash . '.' . $File->getClientOriginalExtension();
|
||||
$path = Storage::disk('public')->putFileAs(
|
||||
$pathUrl, $File, $fileName
|
||||
);
|
||||
if (!$path) {
|
||||
return [
|
||||
'code' => 0,
|
||||
'message' => '文件上传失败',
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'code' => 1,
|
||||
'message' => '文件上传成功',
|
||||
'path' => '/' . $pathUrl . '/' . $fileName,
|
||||
];
|
||||
}
|
||||
}
|
||||
219
app/Http/Controllers/TestController.php
Normal file
219
app/Http/Controllers/TestController.php
Normal file
@@ -0,0 +1,219 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Api\Controllers\ApiResponse;
|
||||
use SelfCoupon;
|
||||
use App\Models\User;
|
||||
use GuzzleHttp\Client;
|
||||
use Illuminate\Http\Request;
|
||||
use XuanChen\Coupon\Coupon;
|
||||
|
||||
// use Wo;
|
||||
|
||||
class TestController
|
||||
{
|
||||
|
||||
use ApiResponse;
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$this->user = User::find(3);
|
||||
|
||||
$data = 'Q7dhxBxcPnSGbnhDtHGgTNPYJfcRf0IcpOBSr+jjRF5SfLe0RLoiAMXYynZ9bb/dnon8MMw/o/AgO/yIIfhxo45Ya9yXOAEAogwR6Ti9nnM=';
|
||||
$iv = substr($this->user->des3key, 0, 8);
|
||||
$ret = openssl_decrypt($data, 'DES-EDE3-CBC', $this->user->des3key, 0, $iv);
|
||||
if (false === $ret) {
|
||||
return openssl_error_string();
|
||||
}
|
||||
dd($ret);
|
||||
dd();
|
||||
$this->user = User::find(215);
|
||||
$ret = [
|
||||
'redemptionCode' => '951951858070',
|
||||
'total' => 5,
|
||||
'outletId' => '2006151433887',
|
||||
];
|
||||
|
||||
return $this->success($ret);
|
||||
dd(phpinfo());
|
||||
dd();
|
||||
$num = 100;
|
||||
|
||||
for ($i = 1; $i <= $num; $i++) {
|
||||
$data = [
|
||||
'outletId' => '2004020935777',
|
||||
'activityId' => 'ysd20200740',
|
||||
'mobile' => '15663876870',
|
||||
];
|
||||
|
||||
$this->user = User::find(3);
|
||||
|
||||
$data = $this->jiami($data);
|
||||
|
||||
$url = 'http://pac.ysd-bs.com/api/V1/user/grant';
|
||||
$res = $this->http($data, $url);
|
||||
|
||||
// if (isset($res['data'])) {
|
||||
// $jiemi = $this->jiemi($res['data']);
|
||||
// dump($jiemi);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
dump($this->getElapsedTime());
|
||||
dump($this->getMemoryUsage());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes: 发券
|
||||
* @Author: 玄尘
|
||||
* @Date : 2020/6/29 13:57
|
||||
*/
|
||||
public function grant(Request $request)
|
||||
{
|
||||
$this->user = User::find(3);
|
||||
|
||||
$data = $this->jiami($request->all());
|
||||
|
||||
$url = 'http://pac.ysd-bs.com/api/V1/user/grant';
|
||||
$res = $this->http($data, $url);
|
||||
|
||||
return $res;
|
||||
|
||||
// dump($this->getElapsedTime());
|
||||
// dump($this->getMemoryUsage());
|
||||
//
|
||||
// dd($res);
|
||||
}
|
||||
|
||||
//查询
|
||||
public function query(Request $request)
|
||||
{
|
||||
$this->user = User::find(3);
|
||||
|
||||
$redemptionCode = $request->redemptionCode;
|
||||
$outletId = $request->outletId;
|
||||
|
||||
$data = $this->jiami($request->all());
|
||||
|
||||
$url = 'http://pac.ysd-bs.com/api/V1/user/query';
|
||||
$res = $this->http($data, $url);
|
||||
|
||||
return $res;
|
||||
if (isset($res['data'])) {
|
||||
$jiemi = $this->jiemi($res['data']);
|
||||
dump($jiemi);
|
||||
}
|
||||
|
||||
dump($this->getElapsedTime());
|
||||
dump($this->getMemoryUsage());
|
||||
|
||||
dump($res);
|
||||
|
||||
}
|
||||
|
||||
//卡券作废
|
||||
public function destroy(Request $request)
|
||||
{
|
||||
$this->user = User::find(3);
|
||||
|
||||
$redemptionCode = $request->redemptionCode;
|
||||
$data = $this->jiami($request->all());
|
||||
|
||||
$url = 'http://pac.ysd-bs.com/api/V1/user/destroy';
|
||||
$res = $this->http($data, $url);
|
||||
|
||||
dump($this->getElapsedTime());
|
||||
dump($this->getMemoryUsage());
|
||||
if (isset($res['data'])) {
|
||||
$jiemi = $this->jiemi($res['data']);
|
||||
dump($jiemi);
|
||||
}
|
||||
dump($res);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes: 核销
|
||||
* @Author: 玄尘
|
||||
* @Date : 2020/6/29 14:01
|
||||
*/
|
||||
public function checkcoupon(Request $request)
|
||||
{
|
||||
|
||||
$redemptionCode = $request->redemptionCode;
|
||||
$total = $request->total;
|
||||
$outletId = $request->outletId;
|
||||
$user_id = $request->user_id;
|
||||
$this->user = User::find($user_id);
|
||||
|
||||
$res = Coupon::Redemption($this->user, $redemptionCode, $total, $outletId);
|
||||
|
||||
dump($this->getElapsedTime());
|
||||
dump($this->getMemoryUsage());
|
||||
dd($res);
|
||||
}
|
||||
|
||||
public function http($data, $url)
|
||||
{
|
||||
$client = new Client();
|
||||
$response = $client->request('POST', $url, ['form_params' => $data, 'http_errors' => false]);
|
||||
|
||||
$body = $response->getBody();
|
||||
$content = $body->getContents();
|
||||
$result = json_decode($content, true);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function jiami($ret)
|
||||
{
|
||||
$jsonData = json_encode($ret); //数据JSON化
|
||||
$ascdata = $this->keyasc($jsonData); //加密
|
||||
$addcode = sprintf("%08d", mt_rand(0, 99999999)); //随机code 验证签名用
|
||||
$sign = $this->keysign($ascdata, $addcode);
|
||||
|
||||
$data = [
|
||||
'server_id' => $this->user->server_id,
|
||||
'key' => $this->user->server_key,
|
||||
'addcode' => $addcode,
|
||||
'sign' => $sign,
|
||||
'data' => $ascdata,
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解密
|
||||
* @param <type> $value
|
||||
* @return <type>
|
||||
*/
|
||||
public function jiemi($value)
|
||||
{
|
||||
$iv = substr($this->user->des3key, 0, 8);
|
||||
$ret = openssl_decrypt($value, 'DES-EDE3-CBC', $this->user->des3key, 0, $iv);
|
||||
if (false === $ret) {
|
||||
return openssl_error_string();
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function getMemoryUsage($precision = 2)
|
||||
{
|
||||
$size = memory_get_usage(true);
|
||||
|
||||
$unit = ['b', 'kb', 'mb', 'gb', 'tb', 'pb'];
|
||||
|
||||
return round($size / pow(1024, ($i = floor(log($size, 1024)))), $precision) . ' ' . $unit[$i];
|
||||
}
|
||||
|
||||
function getElapsedTime(int $decimals = 2)
|
||||
{
|
||||
return number_format(microtime(true) - request()->server('REQUEST_TIME_FLOAT'), $decimals) . ' s';
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user