Browse Source

核销码改由代理商订单列表显示

master
李可松 4 years ago
parent
commit
3b7a214ba4
  1. 43
      app/AdminAgent/Controllers/IndustryOrderController.php
  2. 1
      app/AdminAgent/routes.php
  3. 43
      app/AdminSupplier/Controllers/IndustryOrderController.php
  4. 1
      app/AdminSupplier/routes.php

43
app/AdminAgent/Controllers/IndustryOrderController.php

@ -6,6 +6,7 @@ use App\AdminAgent\Repositories\IndustryOrder;
use App\Common\OrderStatus; use App\Common\OrderStatus;
use App\Common\PayType; use App\Common\PayType;
use App\Common\ProductStatus; use App\Common\ProductStatus;
use App\Models\AdminSetting;
use App\Models\IndustryProduct; use App\Models\IndustryProduct;
use App\Models\SystemSetting; use App\Models\SystemSetting;
use Dcat\Admin\Admin; use Dcat\Admin\Admin;
@ -13,6 +14,9 @@ use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Show; use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Http\Controllers\AdminController;
use EasyWeChat\Factory;
use EasyWeChat\Kernel\Http\StreamResponse;
use Illuminate\Support\Facades\Storage;
class IndustryOrderController extends AdminController class IndustryOrderController extends AdminController
{ {
@ -40,6 +44,15 @@ class IndustryOrderController extends AdminController
$grid->column('picture')->image('', 80, 80); $grid->column('picture')->image('', 80, 80);
$grid->column('status')->using(OrderStatus::array()); $grid->column('status')->using(OrderStatus::array());
$grid->column('paid_at', '订单确认时间'); $grid->column('paid_at', '订单确认时间');
$grid->column('verify_qrcode', '核销二维码')
->if(fn() => $this->verify_code)
->then(function ($column) {
$verify_code = $this->id . '-' . $this->verify_code;
$column->append(admin_url('industry_order/qrcode', $verify_code))->image('', 60, 60);
$column->append('<br>' . $verify_code);
})
->else()
->display('');
$grid->column('created_at'); $grid->column('created_at');
$grid->filter(function (Grid\Filter $filter) { $grid->filter(function (Grid\Filter $filter) {
@ -49,6 +62,36 @@ class IndustryOrderController extends AdminController
}); });
} }
//生成核销二维码,行业产品订单使用支付小程序核销
public function qrcode()
{
$verify_code = request()->route('verify_code');
$qrcode = storage_path("app/public/industry_verify_code/$verify_code.jpg");
if (file_exists($qrcode)) {
return redirect(Storage::disk('public')->url("industry_verify_code/$verify_code.jpg"));
}
$setting = AdminSetting::val(['payee_appid', 'payee_appsecret']);
$config = [
'app_id' => $setting['payee_appid'],
'secret' => $setting['payee_appsecret'],
];
$app = Factory::miniProgram($config);
//由于参数最多只能32个字符,故通过下面这种方式传参
//pt表示使用普通订单,使用api/verification/verify接口核销;
//hy表示行业产品订单,使用api/verification/industry_verify接口核销
$response = $app->app_code->getUnlimit('hy' . $verify_code, ['page' => 'pages/verification/index']);
if ($response instanceof StreamResponse) {
$filename = $response->saveAs(storage_path('app/public/industry_verify_code'), $verify_code); //保存二维码
// $qrcode = Storage::disk('public')->url('industry_verify_code/' . $filename); //获取前端路径
header("Content-Type: " . $response->getHeaderLine('Content-Type'));
exit($response); //输出图片
}
}
/** /**
* Make a show builder. * Make a show builder.
* *

1
app/AdminAgent/routes.php

@ -25,6 +25,7 @@ Route::group([
$router->resource('industry_product/list', 'IndustryProductController'); $router->resource('industry_product/list', 'IndustryProductController');
$router->resource('industry_order/list', 'IndustryOrderController'); $router->resource('industry_order/list', 'IndustryOrderController');
$router->get('industry_order/qrcode/{verify_code}', 'IndustryOrderController@qrcode');
$router->resource('demand', 'DemandController'); $router->resource('demand', 'DemandController');
$router->resource('demand_bidding', 'DemandBiddingController'); $router->resource('demand_bidding', 'DemandBiddingController');

43
app/AdminSupplier/Controllers/IndustryOrderController.php

@ -5,15 +5,11 @@ namespace App\AdminSupplier\Controllers;
use App\AdminSupplier\Extensions\Grid\IndustryOrderStatus; use App\AdminSupplier\Extensions\Grid\IndustryOrderStatus;
use App\AdminSupplier\Repositories\IndustryOrder; use App\AdminSupplier\Repositories\IndustryOrder;
use App\Common\OrderStatus; use App\Common\OrderStatus;
use App\Models\AdminSetting;
use Dcat\Admin\Admin; use Dcat\Admin\Admin;
use Dcat\Admin\Form; use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Show; use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Http\Controllers\AdminController;
use EasyWeChat\Factory;
use EasyWeChat\Kernel\Http\StreamResponse;
use Illuminate\Support\Facades\Storage;
class IndustryOrderController extends AdminController class IndustryOrderController extends AdminController
{ {
@ -46,15 +42,6 @@ class IndustryOrderController extends AdminController
->if(fn() => $this->status == OrderStatus::OFFLINE_UNPAID) ->if(fn() => $this->status == OrderStatus::OFFLINE_UNPAID)
->action(new IndustryOrderStatus); ->action(new IndustryOrderStatus);
$grid->column('paid_at'); $grid->column('paid_at');
$grid->column('verify_qrcode', '核销二维码')
->if(fn() => $this->verify_code)
->then(function ($column) {
$verify_code = $this->id . '-' . $this->verify_code;
$column->append(admin_url('industry_order/qrcode', $verify_code))->image('', 60, 60);
$column->append('<br>' . $verify_code);
})
->else()
->display('');
// $grid->column('timeout'); // $grid->column('timeout');
$grid->column('created_at'); $grid->column('created_at');
@ -65,36 +52,6 @@ class IndustryOrderController extends AdminController
}); });
} }
//生成核销二维码,行业产品订单使用支付小程序核销
public function qrcode()
{
$verify_code = request()->route('verify_code');
$qrcode = storage_path("app/public/industry_verify_code/$verify_code.jpg");
if (file_exists($qrcode)) {
return redirect(Storage::disk('public')->url("industry_verify_code/$verify_code.jpg"));
}
$setting = AdminSetting::val(['payee_appid', 'payee_appsecret']);
$config = [
'app_id' => $setting['payee_appid'],
'secret' => $setting['payee_appsecret'],
];
$app = Factory::miniProgram($config);
//由于参数最多只能32个字符,故通过下面这种方式传参
//pt表示使用普通订单,使用api/verification/verify接口核销;
//hy表示行业产品订单,使用api/verification/industry_verify接口核销
$response = $app->app_code->getUnlimit('hy' . $verify_code, ['page' => 'pages/verification/index']);
if ($response instanceof StreamResponse) {
$filename = $response->saveAs(storage_path('app/public/industry_verify_code'), $verify_code); //保存二维码
// $qrcode = Storage::disk('public')->url('industry_verify_code/' . $filename); //获取前端路径
header("Content-Type: " . $response->getHeaderLine('Content-Type'));
exit($response); //输出图片
}
}
/** /**
* Make a show builder. * Make a show builder.
* *

1
app/AdminSupplier/routes.php

@ -18,7 +18,6 @@ Route::group([
$router->resource('product/list', 'ProductController'); $router->resource('product/list', 'ProductController');
$router->resource('industry_product/list', 'IndustryProductController'); $router->resource('industry_product/list', 'IndustryProductController');
$router->resource('industry_order/list', 'IndustryOrderController'); $router->resource('industry_order/list', 'IndustryOrderController');
$router->get('industry_order/qrcode/{verify_code}', 'IndustryOrderController@qrcode');
$router->resource('order/list', 'OrderController'); $router->resource('order/list', 'OrderController');
$router->resource('agent/list', 'AgentController'); $router->resource('agent/list', 'AgentController');

Loading…
Cancel
Save