123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Filters\AdminUserFilter;
- use App\Handlers\Str;
- use App\Http\Requests\AdminMerchantRequest;
- use App\Http\Requests\AdminUserRequest;
- use App\Http\Resources\AdminMerchantsResource;
- use App\Http\Resources\AdminUserResource;
- use App\Http\Resources\AnnouncementResource;
- use App\Models\AdminMerchant;
- use App\Models\AdminMerchants;
- use App\Models\AdminRole;
- use App\Models\AdminUser;
- use App\Utils\Admin;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Log;
- class AdminUserMerchantController extends AdminBaseController
- {
- public function editUser()
- {
- $user = Admin::user();
- $user->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]);
- }
- }
|