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
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(' ');
|
|
$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 (Grid\Filter $filter) {
|
|
$filter->panel();
|
|
|
|
$filter->equal('id')->width(2);
|
|
$filter->like('name')->width(3);
|
|
$filter->like('company_name')->width(3);
|
|
});
|
|
});
|
|
}
|
|
}
|