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' => '1234@5678'// 密码默认手机号 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['pay_mch_id'], 'pay_key' => $params['pay_key'], 'pay_cert_path' => $params['pay_cert_path'], 'pay_key_path' => $params['pay_key_path'], ]; } if ($params['sub_type'] == 4) { $data = [ 'alipaymini_appId' => $params['alipaymini_appId'], 'alipaymini_merchantPrivateKey' => $params['alipaymini_merchantPrivateKey'], 'alipaymini_alipayCertPath' => $params['alipaymini_alipayCertPath'], 'alipaymini_alipayRootCertPath' => $params['alipaymini_alipayRootCertPath'], 'alipaymini_merchantCertPath' => $params['alipaymini_merchantCertPath'], 'alipaymini_aesKey' => $params['alipaymini_aesKey'], 'alipaymini_pid' => $params['alipaymini_pid'] ]; } if ($params['sub_type'] == 5) { $eol = PHP_EOL;//\r\n 传过来 \n $alipayarrJson = $this->getArrencode($params['alipaymini_message_json']); $wxapparrJson = $this->getArrencode($params['wxapp_message_json']); $data = [ 'alipaymini_message_json' => $alipayarrJson, 'wxapp_message_json' => $wxapparrJson ]; } 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(); $data['mch_list'] = AdminMerchant::query()->where(AdminMerchant::getMerchantWhere())->get(['id', 'name']); } elseif (Admin::user()->isRole(AdminRole::MERCHANTSADMIN)) { $data = AdminMerchant::query()->where('admin_id', $admin_id)->first(); $data['mch_list'] = AdminMerchant::query()->where('id', AdminMerchant::putMerchantId())->get(['id', 'name']); } else { return $this->error('权限不足!'); } if($data->alipaymini_message_json!=''){ $data->alipaymini_message_json = $this->getArrdecode($data->alipaymini_message_json); $data->wxapp_message_json = $this->getArrdecode($data->wxapp_message_json); } return $data; } public function getArrdecode($json){ $arr = json_decode($json); if($arr!= ''){ foreach($arr as $key => $val){ $arr[$key] = implode('=',$val); } } return implode("\n",$arr ); } public function getArrencode($param){ $huanhang = str_replace(array("\r","\n","\r\n"),"*******",$param); $arr = explode("*******",$huanhang); foreach ($arr as $key => $val){ $arr[$key]= explode('=',$val); } $alipayarrJson = json_encode($arr); return $alipayarrJson; } // 上传图片 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]); } public function adminMerchantPay(request $request) { $type = $request->get('type'); $id = $request->get('id'); $file = $request->file('file');//接前台图片 $pay_type = $request->get('pay_type',1); //证书类型 支付宝 2/微信 1 if($pay_type==1){ $folder = "{$id}"; }else{ $folder = "{$id}/zhifubao"; } $filename = "{$type}." . strtolower($file->getClientOriginalExtension()); // 将图片移动到我们的目标存储路径中 $path = Storage::disk('merchant')->putFileAs($folder, $file, $filename); return $this->ok(['path' => $path]); } }