order-food-admin/app/Http/Controllers/Api/Miniprogram/IndexController.php

98 lines
3.6 KiB
PHP

<?php
namespace App\Http\Controllers\Api\Miniprogram;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Storage;
use App\Models\{Good, Banner};
use App\Http\Resources\{GoodsResource,BannersResource};
use EasyWeChat\Factory;
class IndexController extends Controller
{
public function index(Request $request){
//热销商品
$list = Good::where('is_hot', 1)->where('is_sell', 1)->orderBy('goods_price', 'desc')->orderBy('created_at', 'desc')->get();
return GoodsResource::collection($list)->additional(['code' => Response::HTTP_OK, 'message' => '']);
}
public function bannerList(Request $request){
$type = $request->input('address', 'banner_index');
$list = Banner::where('is_show', 1)->where('banner_address', $type)->get();
return BannersResource::collection($list)->additional(['code' => Response::HTTP_OK, 'message' => '']);
}
/**
* 执行资源上传
*/
public function uploadResource(Request $request){
$path = $request->input('path', 'uploads') . '/avatar/' . date('Y-m-d');
$result = [];
// file 文件
$files = $request->file();
if($files){
foreach ($files as $key => $fileData) {
$item = null;
if (is_array($fileData)) {
foreach ($fileData as $file) {
$item[] = str_replace(env('ALIYUN_OSS_DOMAIN').'/', env('OSS_URL'), Storage::url($this->saveFile($path, $file)));
}
} else {
$item = str_replace(env('ALIYUN_OSS_DOMAIN').'/', env('OSS_URL'), Storage::url($this->saveFile($path, $fileData)));
}
$result[$key] = $item;
}
}else{
$data = $request->except(['path']);
foreach ($data as $key => $files) {
$item = null;
if (is_array($files)) {
// $_stop = 0;
foreach ($files as $file) {
$item[] = str_replace(env('ALIYUN_OSS_DOMAIN').'/', env('OSS_URL'), Storage::url($this->saveFile($path, $file)));
}
} else {
$item = str_replace(env('ALIYUN_OSS_DOMAIN').'/', env('OSS_URL'), Storage::url($this->saveFile($path, $files)));
}
$result[$key] = $item;
}
}
return $this->json($result);
}
protected function saveFile($path, $file = null)
{
if (gettype($file) == 'object') {
$file = Storage::putFile($path, $file);
} else if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)) {
$type = $result[2];
if (in_array($type, array('jpeg', 'jpg', 'gif', 'bmp', 'png'))) {
$savePath = $path . '/' . uniqid() . '.' . $type;
Storage::put($savePath, base64_decode(str_replace($result[1], '', $file)));
$file = $savePath;
}
}
return $file;
}
public function createCode(){
// dd(public_path().'/');
$app = \EasyWeChat::miniProgram();
$response = $app->app_code->get('/pages/welcome/welcome?type_lk=3&path=%2Fpages%2Flucky-draw%2Flucky-draw', [
'width' => 600,
//...
]);
// dd($response);
$filename = '';
if ($response instanceof \EasyWeChat\Kernel\Http\StreamResponse) {
$filename = $response->saveAs(public_path().'/', 'appcode.png');
}
dd($filename);
}
}