logic = new MerchantLogic(); $this->validate = new MerchantValidate(); parent::__construct(); } #[Permission('商户列表', 'core:merchant:index')] public function index(Request $request): Response { $where = $request->more([ ['scope', 'own'], ['agent_id', ''], ['name', ''], ['phone', ''], ['distributed', ''], ['status', ''], ['profit_method', ''], ['device_category', 'all'], ['agent_type', ''], ['sort', 'default'], ]); return $this->success($this->logic->indexList($where)); } #[Permission('商户详情', 'core:merchant:read')] public function read(Request $request): Response { return $this->success($this->logic->readAccessible((int) $request->input('id', 0))); } #[Permission('导出商户', 'core:merchant:export')] public function export(Request $request): Response { $where = $request->more([ ['scope', 'own'], ['agent_id', ''], ['name', ''], ['phone', ''], ['distributed', ''], ['status', ''], ['profit_method', ''], ['device_category', 'all'], ['agent_type', ''], ['sort', 'default'], ]); return $this->logic->export($where); } #[Permission('新增商户', 'core:merchant:save')] public function save(Request $request): Response { $data = $request->post(); $this->validate('save', $data); $id = $this->logic->addMerchant($data); return $this->success(['id' => $id], '添加成功'); } #[Permission('编辑商户', 'core:merchant:update')] public function update(Request $request): Response { $data = $request->post(); $this->validate('update', $data); $this->logic->editMerchant((int) $data['id'], $data); return $this->success([], '保存成功'); } #[Permission('删除商户', 'core:merchant:destroy')] public function destroy(Request $request): Response { $this->logic->destroyAccessible($request->input('ids', [])); return $this->success([], '删除成功'); } #[Permission('重置商户密码', 'core:merchant:password')] public function password(Request $request): Response { $data = $request->post(); $this->validate('password', $data); $this->logic->resetPassword((int) $data['id'], (string) $data['password']); return $this->success([], '密码重置成功'); } #[Permission('商户绑定设备列表', 'core:merchant:device:index')] public function devices(Request $request): Response { return $this->success($this->logic->boundDevices((int) $request->input('id', 0))); } #[Permission('商户绑定设备', 'core:merchant:device:bind')] public function bindDevice(Request $request): Response { $data = $request->post(); $this->validate('deviceBind', $data); $result = $this->logic->bindDevices((int) $data['merchant_id'], $data['device_sns']); return $this->success($result, (string) $result['message']); } #[Permission('商户解绑设备', 'core:merchant:device:unbind')] public function unbindDevice(Request $request): Response { $data = $request->post(); $this->validate('deviceUnbind', $data); $this->logic->unbindDevice((int) $data['merchant_id'], (int) $data['device_id']); return $this->success([], '设备解绑成功'); } #[Permission('商户提现更新配置', 'core:merchant:withdrawalSetting:read')] public function withdrawalSetting(Request $request): Response { return $this->success( $this->logic->readWithdrawalSetting((int) $request->input('id', 0)) ); } #[Permission('保存商户提现更新配置', 'core:merchant:withdrawalSetting:update')] public function updateWithdrawalSetting(Request $request): Response { $data = $request->post(); $this->validate('withdrawalSetting', $data); $this->logic->updateWithdrawalSetting( (int) $data['merchant_id'], (int) $data['update_mode'], (int) $data['update_day'] ); return $this->success([], '提现更新设置保存成功'); } #[Permission('商户营业时间', 'core:merchant:update')] public function businessTime(Request $request): Response { return $this->success( $this->logic->readBusinessTime((int) $request->input('id', 0)) ); } #[Permission('保存商户营业时间', 'core:merchant:update')] public function updateBusinessTime(Request $request): Response { $data = $request->post(); $this->validate('businessTime', $data); $this->logic->updateBusinessTime( (int) $data['merchant_id'], (string) $data['business_time_des'] ); return $this->success([], '营业时间保存成功'); } #[Permission('商户数据统计', 'core:merchant:statistics')] public function statistics(Request $request): Response { return $this->success($this->logic->statistics( (int) $request->input('id', 0), (string) $request->input('start_date', ''), (string) $request->input('end_date', '') )); } #[Permission('导出商户数据统计', 'core:merchant:statistics:export')] public function statisticsExport(Request $request): Response { return $this->logic->statisticsExport( (int) $request->input('id', 0), (string) $request->input('start_date', ''), (string) $request->input('end_date', '') ); } }