海南旅游SAAS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

82 lines
3.0 KiB

<?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::CLUSTER, 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);
});
});
}
}