Browse Source

小程序管理上传独立管理页面

master
李可松 4 years ago
parent
commit
c6bdc354d0
  1. 34
      app/Admin/Controllers/AgentController.php
  2. 82
      app/Admin/Controllers/MiniProgramController.php
  3. 1
      app/Admin/routes.php
  4. 2
      app/Jobs/UploadMiniProgramQueue.php
  5. 2
      app/Service/UploadMiniProgram.php
  6. 2
      resources/lang/zh_CN/agent.php

34
app/Admin/Controllers/AgentController.php

@ -3,14 +3,9 @@
namespace App\Admin\Controllers; namespace App\Admin\Controllers;
use App\Admin\Extensions\Grid\AuditAgent; use App\Admin\Extensions\Grid\AuditAgent;
use App\Admin\Extensions\Grid\MiniProgramAuditStatus;
use App\Admin\Extensions\Grid\MiniProgramPull;
use App\Admin\Extensions\Grid\MiniProgramReg;
use App\Admin\Extensions\Grid\MiniProgramUpload;
use App\Admin\Repositories\Agent; use App\Admin\Repositories\Agent;
use App\Common\AgentType; use App\Common\AgentType;
use App\Common\UserStatus; use App\Common\UserStatus;
use App\Models\MiniProgramTemplate;
use App\Models\Supplier; use App\Models\Supplier;
use Dcat\Admin\Form; use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
@ -32,8 +27,6 @@ class AgentController extends AdminController
$grid->disableDeleteButton(); $grid->disableDeleteButton();
$grid->disableRowSelector(); $grid->disableRowSelector();
$grid->tools(new MiniProgramPull('更新小程序模板'));
//如果是审核页面,多加where条件判断 //如果是审核页面,多加where条件判断
if (strpos(Route::current()->uri, 'audit')) { if (strpos(Route::current()->uri, 'audit')) {
$grid->model()->where('status', UserStatus::UNAUDITED); $grid->model()->where('status', UserStatus::UNAUDITED);
@ -53,10 +46,7 @@ class AgentController extends AdminController
//$grid->column('rate')->editable()->help('分成百分比,如10%,则输入10'); //$grid->column('rate')->editable()->help('分成百分比,如10%,则输入10');
$grid->column('created_at'); $grid->column('created_at');
$last_template_id = MiniProgramTemplate::max('template_id');
$grid->column('status', '状态') $grid->column('status', '状态')
->style('min-width:7em;')
->help('新用户入驻时,请先注册小程序。待企业法人认证通过之后,再上传小程序即可')
->using(UserStatus::array()) ->using(UserStatus::array())
->dot([ ->dot([
UserStatus::NORMAL => 'success', UserStatus::NORMAL => 'success',
@ -69,31 +59,9 @@ class AgentController extends AdminController
->then(function ($column) { ->then(function ($column) {
$column->append((new AuditAgent(null, 1))->setKey($this->id))->append(' '); $column->append((new AuditAgent(null, 1))->setKey($this->id))->append(' ');
$column->append((new AuditAgent(null, 2))->setKey($this->id)); $column->append((new AuditAgent(null, 2))->setKey($this->id));
})
->if(fn() => $this->status == UserStatus::NORMAL && in_array($this->type, [AgentType::OPERATOR, AgentType::SUPPLIER]))
->display('')
->then(function ($column) use ($last_template_id) {
$is_success = $this->miniUpload->is_success ?? null;
$template_id = $this->miniUpload->template_id ?? null;
if (empty($this->appid)) { //注册小程序
$column->append((new MiniProgramReg(null, 1))->setKey($this->id))->append(' ');
$column->append((new MiniProgramReg(null, 2))->setKey($this->id));
} else if ($is_success === 0 && $template_id === $last_template_id) {
$column->append("已发布(模板:{$template_id})");
} else if (in_array($is_success, [-1, 2, 4])) { //如果状态是-1未检查过,或2审核中,或4审核延后,则显示审核状态按钮
$column->append((new MiniProgramAuditStatus(null, 1))->setKey($this->id))->append(' ');
$column->append((new MiniProgramAuditStatus(null, 2))->setKey($this->id));
} else {
$column->append((new MiniProgramUpload(null, 1))->setKey($this->id));
$statusArr = [0 => '审核成功', 1 => '审核被拒绝', 2 => '审核中', 3 => '已撤回', 4 => '审核延后'];
if (isset($is_success, $statusArr[$is_success])) {
$column->append('<br>(模板' . $template_id . $statusArr[$is_success] . ')');
}
}
}); });
$grid->filter(function ($filter) {
$grid->filter(function (Grid\Filter $filter) {
$filter->panel(); $filter->panel();
$filter->equal('id')->width(2); $filter->equal('id')->width(2);

82
app/Admin/Controllers/MiniProgramController.php

@ -0,0 +1,82 @@
<?php
namespace App\Admin\Controllers;
use App\Admin\Extensions\Grid\MiniProgramAuditStatus;
use App\Admin\Extensions\Grid\MiniProgramPull;
use App\Admin\Extensions\Grid\MiniProgramReg;
use App\Admin\Extensions\Grid\MiniProgramUpload;
use App\Common\AgentType;
use App\Common\UserStatus;
use App\Models\Agent;
use App\Models\MiniProgramTemplate;
use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\AdminController;
class MiniProgramController extends AdminController
{
protected $title = '小程序管理';
protected $translation = 'agent';
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new Agent(), function (Grid $grid) {
$grid->disableRowSelector();
$grid->disableCreateButton();
$grid->disableActions();
$grid->model()
->whereIn('type', [AgentType::OPERATOR, AgentType::SUPPLIER])
->where([['status', '=', UserStatus::NORMAL], ['id', '>', 1]]); //隐藏ID=1的领峰云管理员
$grid->tools(new MiniProgramPull('更新小程序模板'));
$grid->column('id')->sortable();
$grid->column('username');
$grid->column('appid');
$grid->column('name');
$grid->column('company_name');
$grid->column('created_at');
$last_template_id = MiniProgramTemplate::max('template_id');
$grid->column('op', '操作')
->style('min-width:7em;')
->help('新用户入驻时,请先注册小程序。待企业法人认证通过之后,并设置邮箱、头像、昵称等,再上传小程序即可')
->if(fn() => true)
->display('')
->then(function ($column) use ($last_template_id) {
$is_success = $this->miniUpload->is_success ?? null;
$template_id = $this->miniUpload->template_id ?? null;
if (empty($this->appid)) { //注册小程序
$column->append((new MiniProgramReg(null, 1))->setKey($this->id))->append('&nbsp;');
$column->append((new MiniProgramReg(null, 2))->setKey($this->id));
} else if ($is_success === 0 && $template_id === $last_template_id) {
$column->append("已发布(模板:{$template_id})");
} else if (in_array($is_success, [-1, 2, 4])) { //如果状态是-1未检查过,或2审核中,或4审核延后,则显示审核状态按钮
$column->append((new MiniProgramAuditStatus(null, 1))->setKey($this->id))->append('&nbsp;');
$column->append((new MiniProgramAuditStatus(null, 2))->setKey($this->id));
} else {
$column->append((new MiniProgramUpload(null, 1))->setKey($this->id));
$statusArr = [0 => '审核成功', 1 => '审核被拒绝', 2 => '审核中', 3 => '已撤回', 4 => '审核延后'];
if (isset($is_success, $statusArr[$is_success])) {
$column->append('<br>(模板' . $template_id . $statusArr[$is_success] . ')');
}
}
});
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
$filter->equal('id')->width(2);
$filter->like('name')->width(3);
$filter->like('company_name')->width(3);
});
});
}
}

1
app/Admin/routes.php

@ -45,6 +45,7 @@ Route::group([
$router->resource('mini_program/draft', 'MiniProgramDraftController'); $router->resource('mini_program/draft', 'MiniProgramDraftController');
$router->resource('mini_program/template', 'MiniProgramTemplateController'); $router->resource('mini_program/template', 'MiniProgramTemplateController');
$router->resource('mini_program/list', 'MiniProgramListController'); $router->resource('mini_program/list', 'MiniProgramListController');
$router->resource('mini_program/upload', 'MiniProgramController');
$router->resource('industry_order/list', 'IndustryOrderController'); $router->resource('industry_order/list', 'IndustryOrderController');
$router->resource('withdrawal', 'WithdrawalController'); $router->resource('withdrawal', 'WithdrawalController');
$router->resource('system', 'SystemSettingController'); $router->resource('system', 'SystemSettingController');

2
app/Jobs/UploadMiniProgramQueue.php

@ -48,7 +48,7 @@ class UploadMiniProgramQueue implements ShouldQueue
try { try {
new UploadMiniProgram($agent, $template); new UploadMiniProgram($agent, $template);
} catch (GuzzleException | \Exception $e) { } catch (GuzzleException | \Exception $e) {
throw new Exception($e->getMessage());
throw new Exception($agent->id . '-' . $agent->appid . $e->getMessage());
} }
} }
} }

2
app/Service/UploadMiniProgram.php

@ -106,7 +106,7 @@ class UploadMiniProgram
throw new Exception($res['errmsg'] ?? join(',', $res)); throw new Exception($res['errmsg'] ?? join(',', $res));
} }
} catch (Exception $e) { } catch (Exception $e) {
throw new Exception($agent->id . '-' . $agent->appid . $e->getMessage());
throw new Exception($e->getMessage());
} }
} }

2
resources/lang/zh_CN/agent.php

@ -4,6 +4,8 @@ return [
'Agent' => '代理商', 'Agent' => '代理商',
'agent' => '代理商', 'agent' => '代理商',
'agent_info' => '代理商信息', 'agent_info' => '代理商信息',
'mini_program' => '小程序管理',
'upload' => '上传',
], ],
'fields' => [ 'fields' => [
'account' => '账号', 'account' => '账号',

Loading…
Cancel
Save