baseCRUD() ->filterTogglable(false) ->headerToolbar([ $this->createButton('dialog'), ...$this->baseHeaderToolBar(), ]) ->columns([ amis()->TableColumn('id', 'ID')->sortable(), amis()->TableColumn('user_id', '用户编号'), amis()->TableColumn('info_record_id', '技师信息记录编号'), amis()->TableColumn('real_auth_record_id', '技师实名认证记录编号'), amis()->TableColumn('qualification_record_id', '技师资质认证记录编号'), amis()->TableColumn('shop_id', '店铺编号'), amis()->TableColumn('level', '技师等级'), amis()->TableColumn('virtual_order', '虚拟订单数')->sortable(), amis()->TableColumn('score', '评分'), amis()->TableColumn('work_status', '工作状态'), amis()->TableColumn('virtual_status', '虚拟状态'), amis()->TableColumn('state', '状态'), amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(), amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(), $this->rowActions('dialog'), ]); return $this->baseList($crud); } public function form($isEdit = false) { return $this->baseForm()->body([ amis()->TextControl('user_id', '用户编号'), amis()->TextControl('info_record_id', '技师信息记录编号'), amis()->TextControl('real_auth_record_id', '技师实名认证记录编号'), amis()->TextControl('qualification_record_id', '技师资质认证记录编号'), amis()->TextControl('shop_id', '店铺编号'), amis()->TextControl('level', '技师等级'), amis()->TextControl('virtual_order', '虚拟订单数'), amis()->TextControl('score', '评分'), amis()->TextControl('work_status', '工作状态'), amis()->TextControl('virtual_status', '虚拟状态'), amis()->TextControl('state', '状态'), ]); } public function detail() { return $this->baseDetail()->body([ amis()->TextControl('id', 'ID')->static(), amis()->TextControl('user_id', '用户编号')->static(), amis()->TextControl('info_record_id', '技师信息记录编号')->static(), amis()->TextControl('real_auth_record_id', '技师实名认证记录编号')->static(), amis()->TextControl('qualification_record_id', '技师资质认证记录编号')->static(), amis()->TextControl('shop_id', '店铺编号')->static(), amis()->TextControl('level', '技师等级')->static(), amis()->TextControl('virtual_order', '虚拟订单数')->static(), amis()->TextControl('score', '评分')->static(), amis()->TextControl('work_status', '工作状态')->static(), amis()->TextControl('virtual_status', '虚拟状态')->static(), amis()->TextControl('state', '状态')->static(), amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(), amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(), ]); } /** * [技师管理]拉黑技师 * * @description 将技师加入黑名单 * * @header x-xsrf-token required CSRF令牌 Example: your_csrf_token * * @bodyParam coach_id integer required 技师ID Example: 1 * @bodyParam reason string required 拉黑原因 Example: 服务态度恶劣 * * @response { * "code": 200, * "message": "拉黑成功", * "data": null * } */ public function blockCoach(Request $request) { $validated = $request->validate([ 'coach_id' => 'required|integer|exists:coach_users,id', 'reason' => 'required|string|max:255', ]); return $this->service->blockCoach($validated); } /** * [技师管理]冻结技师余额 * * @description 冻结技师钱包余额 * * @header x-xsrf-token required CSRF令牌 Example: your_csrf_token * * @bodyParam coach_id integer required 技师ID Example: 1 * @bodyParam amount numeric required 冻结金额 Example: 100.00 * @bodyParam reason string required 冻结原因 Example: 涉嫌违规操作 * * @response { * "code": 200, * "message": "冻结成功", * "data": null * } */ public function freezeBalance(Request $request) { $validated = $request->validate([ 'coach_id' => 'required|integer|exists:coach_users,id', 'amount' => 'required|numeric|min:0.01', 'reason' => 'required|string|max:255', ]); return $this->service->freezeCoachBalance($validated); } }