load(['roles', 'permissions', 'areas']); return $this->ok(AdminUserResource::make($user)); } public function updateUser(AdminMerchantRequest $request) { $inputs = $request->validated(); Admin::user()->updateUser($inputs); return $this->callAction('user', [])->setStatusCode(201); } /** * 商户列表 * @param AdminUserFilter $filter * @return \Illuminate\Http\JsonResponse */ public function index(AdminUserFilter $filter) { $userQuery = AdminMerchant::query() ->filter($filter); $userQuery->with(['admin_user' => function ($query) { $query->where('type', AdminUser::TYPE_ADMIN); }]); if (!Admin::user()->isRole(AdminRole::ADMINISTROTOR)) { // 技术 $userQuery->where('id', -1); } $users = $userQuery->orderByDesc('id')->paginate(); // return $users; return $this->ok(AdminMerchantsResource::collection($users)); } public function store(AdminMerchantRequest $request, AdminMerchant $adminMerchants) { $user_add = [ 'account' => $request->account, 'job_number' => $request->phone, 'name' => $request->name, 'phone' => $request->phone, 'password' => '123456..'// 密码默认手机号 123456.. ]; if (!Admin::user()->isRole(AdminRole::ADMINISTROTOR)) { // 技术管理员 return $this->error('权限不足'); } $res = AdminUser::query()->where('account', $request->account)->first(); if ($res) { return $this->error('账号已经存在'); } // $add_res = AdminUser::create($user_add); $add_res = AdminUser::createUser($user_add); $roles_id = AdminRole::query()->where('slug', AdminRole::MERCHANTSADMIN)->first(); if ($roles_id) { $roles = [$roles_id->id]; $add_res->roles()->attach($roles); } $order_key_data = AdminMerchant::query()->whereNotNull('order_key')->get(['order_key'])->toArray(); $add_mch = [ 'name' => $request->name, 'phone' => $request->phone, 'proportion' => $request->proportion ?: 0, 'email' => $request->email, 'admin_id' => $add_res->id, 'mck_key' => Str::uniqueString(),// 商户唯一key 'order_key' => Str::getChr(array_column($order_key_data, 'order_key')),// 商户唯一order_key ]; $adminMerchants->create($add_mch); return $this->ok(AdminMerchantsResource::make($adminMerchants)); } public function show(AdminUser $adminUser) { $adminUser->load(['roles', 'permissions', 'areas']); return $this->ok(AdminUserResource::make($adminUser)); } /** * @param AdminMerchantRequest $request * @param AdminMerchant $adminMerchants * @return \Illuminate\Http\JsonResponse */ public function update(AdminMerchantRequest $request, AdminMerchant $adminMerchants) { $inputs = $request->validated(); unset($inputs['account']); $adminMerchants->update($inputs); return $this->created(AdminMerchantsResource::make($adminMerchants)); } public function destroy(AdminMerchant $adminMerchants) { $adminMerchants->delete(); return $this->noContent(); } /** * @param AdminMerchant $adminMerchants * @return \Illuminate\Http\JsonResponse */ public function edit(AdminMerchant $adminMerchants) { return $this->ok(AdminMerchantsResource::make($adminMerchants)); } // 商户配置信息 public function editMerchantConfig(Request $request) { // // $user = Admin::user(); $params = $request->all(); $admin_id = 0; if (Admin::user()->isRole(AdminRole::ADMINISTROTOR)) { // 技术 // return $this->error('您不是商户不能修改!'); $admin_id = $params['admin_id']; } if (Admin::user()->isRole(AdminRole::MERCHANTSADMIN)) { $admin_id = $user->id; } if (empty($admin_id)) { return $this->error('您无权修改!'); } if ($params['sub_type'] == 1) { // 基础设置 $data = [ 'name' => $params['name'], 'proportion' => $params['proportion'], 'cash' => $params['cash'], 'is_refund' => $params['is_refund'], 'wxapp_qr_code' => $params['wxapp_qr_code'], 'username' => $params['username'], 'area_name' => $params['area_name'], 'refund_callback_url' => $params['refund_callback_url'], 'car_qr_code_url' => $params['car_qr_code_url'], 'ground_qr_code' => $params['ground_qr_code'], 'factory_qr_code' => $params['factory_qr_code'], ]; } if ($params['sub_type'] == 2) { $data = [ 'wxapp_app_id' => $params['wxapp_app_id'], 'wxapp_app_secret' => $params['wxapp_app_secret'], 'wxapp_qr_code' => $params['wxapp_qr_code'], 'wxapp_name' => $params['wxapp_name'], 'brand' => $params['brand'], 'wxapp_desc' => $params['wxapp_desc'], ]; } if ($params['sub_type'] == 3) { $data = [ 'pay_mch_id' => $params['mch_id'], 'pay_key' => $params['api_private_key'], ]; } if (count($data)) { $this->error('缺少参数'); } $update_res = AdminMerchant::query()->where('admin_id', $admin_id)->update($data); if ($update_res) { return $this->ok(['status' => 1]); } return $this->error('更新失败'); } public function getMerchantConfig(Request $request) { $user = Admin::user(); $admin_id = $user->id; $data = []; if (Admin::user()->isRole(AdminRole::ADMINISTROTOR)) { // 技术 $model = AdminMerchant::query(); if ($request->id) { $model->where('id', $request->id); } $data = $model->first(); } elseif (Admin::user()->isRole(AdminRole::MERCHANTSADMIN)) { $data = AdminMerchant::query()->where('admin_id', $admin_id)->first(); } else { return $this->error('权限不足!'); } $data['mch_list'] = AdminMerchant::query()->get(['id', 'name']); return $data; } // 上传图片 public function adminMerchantUplode(request $request) { $dat = $request->all();//接收所有的 $file = $request->wxapp_qr_code;//接前台图片 if (empty($file)) { $file = $request->factory_qr_code;//接前台图片 } if (empty($file)) { $file = $request->ground_qr_code;//接前台图片 } // $file = $request->avatar; $folder_name = "uploads/images/avatars/" . date("Ym/d", time()); $upload_path = public_path() . '/' . $folder_name; $extension = strtolower($file->getClientOriginalExtension()) ?: 'png'; $filename = time() . '_' . Str::random(10) . '.' . $extension; $file->move($upload_path, $filename); $url = config('app.url') . "/$folder_name/$filename"; return $this->ok(['path' => $url]); } }