| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- <?php
- namespace App\Module\UrsPromotion\AdminControllers;
- use UCore\DcatAdmin\AdminController;
- use Spatie\RouteAttributes\Attributes\Resource;
- use App\Module\UrsPromotion\Models\UrsPartnerDividendRecord;
- use App\Module\UrsPromotion\Repositories\UrsPartnerDividendRepository;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Show;
- /**
- * URS合伙人分红管理控制器
- *
- * @route /admin/urs-promotion/partner-dividend
- */
- #[Resource('urs-promotion/partner-dividend')]
- class UrsPartnerDividendController extends AdminController
- {
- /**
- * 页面标题
- */
- protected $title = '合伙人分红管理';
- /**
- * 模型类
- */
- protected $model = UrsPartnerDividendRecord::class;
- /**
- * 仓库类
- */
- protected $repository = UrsPartnerDividendRepository::class;
- /**
- * 列表页面
- */
- protected function grid(): Grid
- {
- return Grid::make(new UrsPartnerDividendRepository(), function (Grid $grid) {
- // 基础列配置
- $grid->column('id', 'ID')->sortable();
- $grid->column('dividend_date', '分红日期')->sortable();
- $grid->column('total_fee_amount', '总手续费')->sortable()->display(function ($value) {
- return number_format($value, 4) . ' 钻石';
- });
- $grid->column('dividend_amount', '分红金额')->sortable()->display(function ($value) {
- return number_format($value, 4) . ' 钻石';
- });
- $grid->column('partner_count', '合伙人数')->sortable();
- $grid->column('per_partner_amount', '人均分红')->sortable()->display(function ($value) {
- return number_format($value, 4) . ' 钻石';
- });
- $grid->column('status', '状态')->using([
- 'pending' => '待处理',
- 'processing' => '处理中',
- 'completed' => '已完成',
- 'failed' => '失败'
- ])->label([
- 'pending' => 'warning',
- 'processing' => 'info',
- 'completed' => 'success',
- 'failed' => 'danger'
- ]);
- $grid->column('created_at', '创建时间')->sortable();
- // 操作配置
- $grid->actions(function (Grid\Displayers\Actions $actions) {
- $actions->disableEdit();
- $actions->disableDelete();
- });
- $grid->disableCreateButton();
- $grid->disableBatchActions();
- // 默认排序
- $grid->model()->orderBy('dividend_date', 'desc');
- });
- }
- /**
- * 详情页面
- */
- protected function detail($id): Show
- {
- return Show::make($id, new UrsPartnerDividendRepository(), function (Show $show) use ($id) {
- // 基础信息
- $show->field('id', 'ID');
- $show->field('dividend_date', '分红日期');
- $show->field('total_fee_amount', '总手续费')->as(function ($value) {
- return number_format($value, 4) . ' 钻石';
- });
- $show->field('dividend_amount', '分红金额')->as(function ($value) {
- return number_format($value, 4) . ' 钻石';
- });
- $show->field('partner_count', '合伙人数');
- $show->field('per_partner_amount', '人均分红')->as(function ($value) {
- return number_format($value, 4) . ' 钻石';
- });
- $show->field('status', '状态')->as(function ($status) {
- $statuses = [
- 'pending' => '待处理',
- 'processing' => '处理中',
- 'completed' => '已完成',
- 'failed' => '失败'
- ];
- return $statuses[$status] ?? '未知';
- });
- $show->field('error_message', '错误信息');
- $show->field('created_at', '创建时间');
- $show->field('updated_at', '更新时间');
- // 显示分红详情链接
- $show->field('partner_count', '分红详情')->as(function ($value) use ($id) {
- // 使用传入的ID参数构建链接
- $detailsUrl = admin_url('urs-promotion/partner-dividend-details?dividend_record_id=' . $id);
- return '<a href="' . $detailsUrl . '" class="btn btn-primary btn-sm" target="_blank">
- <i class="fa fa-list-alt"></i> 查看分红详情 (' . $value . '个合伙人)
- </a>';
- })->unescape();
- });
- }
- }
|