98 lines
3.6 KiB
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);
|
|
}
|
|
} |