getJsonData(); $rules = [ 'page' => 'nullable|integer', 'page_size' => 'nullable|integer' ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $pageSize = $inputData['page_size'] ?? CommonConstant::PAGE_SIZE; if ($pageSize > 500) { $pageSize = CommonConstant::PAGE_SIZE; } $page = format_page($inputData['page'] ?? 1); $model = PaymentModel::query(); if (!empty($inputData['name'])) { $model = $model->where('name', 'like', '%' . $inputData['name'] . '%'); } if (!empty($inputData['status'])) { $model = $model->where('status', $inputData['status']); } $res = $model->orderByDesc('created_at')->paginate( $pageSize, ["*"], 'page', $page); return json_success($res); } /** * 支付方式添加 * * @return \Illuminate\Http\JsonResponse|mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException */ public function paymentAdd() { $inputData = $this->getJsonData(); $rules = [ 'name' => 'required|string', 'pay_code' => 'required|string', 'partner_id' => 'required|string', ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $setarr = [ 'name' => $inputData['name'], 'pay_code' => $inputData['pay_code'], 'partner_id' => $inputData['partner_id'], ]; $res = PaymentModel::query()->create($setarr); if ($res) { return json_success([], '添加成功'); } else { return json_fail('添加失败'); } } /** * 支付方式修改 * * @return \Illuminate\Http\JsonResponse|mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException */ public function paymentEdit() { $inputData = $this->getJsonData(); $rules = [ 'name' => 'nullable|string', 'pay_code' => 'nullable|string', 'partner_id' => 'nullable|string', 'status' => 'nullable|in:1,2', 'uid' => 'required|string', ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $info = PaymentModel::query()->where('uid', $inputData['uid'])->first(); if (!$info) { return json_fail('操作的支付方式不存在'); } if (!empty($inputData['name'])) { $info->name = $inputData['name']; } if (!empty($inputData['pay_code'])) { $info->pay_code = $inputData['pay_code']; } if (!empty($inputData['partner_id'])) { $info->partner_id = $inputData['partner_id']; } if (!empty($inputData['status'])) { $info->status = $inputData['status']; } if ($info->save()) { return json_success([], '修改成功'); } else { return json_fail('修改失败'); } } /** * 支付通道列表 * * @return \Illuminate\Http\JsonResponse|mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException */ public function paymentAttrList() { $inputData = $this->getJsonData(); $rules = [ 'page' => 'required|integer', 'page_size' => 'required|integer', 'name' => 'nullable|string', 'pay_uid' => 'nullable', 'status' => 'nullable|in:1,2', ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $model = PaymentAttrModel::query(); if (!empty($inputData['pay_uid'])) { $model = $model->where('pay_uid', $inputData['pay_uid']); } if (!empty($inputData['status'])) { $model = $model->where('status', $inputData['status']); } if (!empty($inputData['name'])) { $model = $model->where('name', 'like', '%' . $inputData['name'] . '%'); } $pageSize = $inputData['page_size'] ?? CommonConstant::PAGE_SIZE; if ($pageSize > 500) { $pageSize = CommonConstant::PAGE_SIZE; } $page = format_page($inputData['page'] ?? 0); $res = $model->orderByDesc('created_at')->paginate( $pageSize, ["*"], 'page', $page); return json_success($res); } /** * 支付通道添加 * * @return \Illuminate\Http\JsonResponse|mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException */ public function paymentAttrAdd() { $inputData = $this->getJsonData(); $rules = [ 'pay_uid' => 'required|string', 'code' => 'required|string', 'name' => 'required|string', ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $setarr = [ 'name' => $inputData['name'], 'pay_uid' => $inputData['pay_uid'], 'code' => $inputData['code'], ]; $res = PaymentAttrModel::query()->create($setarr); if ($res) { return json_success([], '添加成功'); } else { return json_fail('添加失败'); } } /** * 支付通道修改 * * @return \Illuminate\Http\JsonResponse|mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException */ public function paymentAttrEdit() { $inputData = $this->getJsonData(); $rules = [ 'pay_uid' => 'nullable|string', 'code' => 'nullable|string', 'name' => 'nullable|string', 'uid' => 'required|string', 'status' => 'nullable|in:1,2' ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $info = PaymentAttrModel::query()->where('uid', $inputData['uid'])->first(); if (!$info) { return json_fail('操作的支付通道不存在'); } if (!empty($inputData['name'])) { $info->name = $inputData['name']; } if (!empty($inputData['pay_uid'])) { $info->pay_uid = $inputData['pay_uid']; } if (!empty($inputData['code'])) { $info->code = $inputData['code']; } if (!empty($inputData['status'])) { $info->status = $inputData['status']; } if ($info->save()) { return json_success([], '修改成功'); } else { return json_fail('修改失败'); } } /** * 支付类型列表 * * @return \Illuminate\Http\JsonResponse|mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException */ public function paymentTypeList() { $inputData = $this->getJsonData(); $rules = [ 'page' => 'nullable|integer', 'page_size' => 'nullable|integer', 'payment_uid' => 'nullable|string', 'status' => 'nullable|in:1,2', 'pay_type' => 'nullable|in:1,2,3,4,5', 'belong_device' => 'nullable|in:A,I', ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $model = PaymentTypeModel::query(); if (!empty($inputData['payment_uid'])) { $model->payment_uid = $model->where('payment_uid', $inputData['payment_uid']); } if (!empty($inputData['status'])) { $model = $model->where('status', $inputData['status']); } if (!empty($inputData['pay_type'])) { $model = $model->where('pay_type', $inputData['pay_type']); } $pageSize = $inputData['page_size'] ?? CommonConstant::PAGE_SIZE; if ($pageSize > 500) { $pageSize = CommonConstant::PAGE_SIZE; } $page = format_page($inputData['page'] ?? 1); $res = $model->orderByDesc('weights')->paginate( $pageSize, ["*"], 'page', $page); foreach ($res->items() as &$val) { $val->payment_attr_code = $val->paymentAttr->code ?? ''; unset($val->paymentAttr); } return json_success($res); } /** * 支付类型添加 * * @return \Illuminate\Http\JsonResponse|mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException */ public function paymentTypeAdd() { $inputData = $this->getJsonData(); $rules = [ 'name' => 'required|string', 'payment_uid' => 'required|string', 'payment_attr_uid' => 'required|string', 'pay_type' => 'required|in:1,2,3,4,5', 'limit_type' => 'required|in:1,2', 'limit' => 'required|string', 'weights' => 'required|integer', 'remark' => 'nullable|string', 'status' => 'required|in:1,2', 'belong_device' => 'nullable|in:I,A', ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $setarr = [ 'name' => $inputData['name'], 'payment_uid' => $inputData['payment_uid'], 'payment_attr_uid' => $inputData['payment_attr_uid'], 'pay_type' => $inputData['pay_type'], 'limit_type' => $inputData['limit_type'], 'limit' => $inputData['limit'], 'weights' => $inputData['weights'], 'remark' => $inputData['remark'], 'status' => $inputData['status'], 'rate' => $inputData['rate'], 'belong_device' => $inputData['belong_device'], ]; $res = PaymentTypeModel::query()->create($setarr); if ($res) { return json_success([], '添加成功'); } else { return json_fail('添加失败'); } } /** * 支付类型修改 * * @return \Illuminate\Http\JsonResponse|mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException */ public function paymentTypeEdit() { $inputData = $this->getJsonData(); $rules = [ 'name' => 'nullable|string', 'payment_uid' => 'nullable|string', 'payment_attr_uid' => 'nullable|string', 'pay_type' => 'nullable|in:1,2,3,4,5', 'limit_type' => 'nullable|in:1,2', 'limit' => 'nullable|string', 'weights' => 'nullable|integer', 'remark' => 'nullable|string', 'status' => 'nullable|in:1,2', 'uid' => 'required|string', 'belong_device' => 'nullable|in:I,A', ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $info = PaymentTypeModel::query()->where('uid', $inputData['uid'])->first(); if (!$info) { return json_fail('操作的支付类型不存在'); } if (!empty($inputData['name'])) { $info->name = $inputData['name']; } if (!empty($inputData['payment_uid'])) { $info->payment_uid = $inputData['payment_uid']; } if (!empty($inputData['payment_attr_uid'])) { $info->payment_attr_uid = $inputData['payment_attr_uid']; } if (!empty($inputData['pay_type'])) { $info->pay_type = $inputData['pay_type']; } if (!empty($inputData['limit_type'])) { $info->limit_type = $inputData['limit_type']; } if (!empty($inputData['belong_device'])) { $info->belong_device = $inputData['belong_device']; } if (!empty($inputData['limit'])) { $info->limit = $inputData['limit']; } if (!empty($inputData['weights'])) { $info->weights = $inputData['weights']; } if (!empty($inputData['status'])) { $info->status = $inputData['status']; } if (!empty($inputData['rate'])) { $info->rate = $inputData['rate']; } $info->remark = $inputData['remark']; if ($info->save()) { Cache::forget(RedisKeyConstant::PAYMENTTYPE); app(MerchantServices::class)->clearCache(); app(CommonService::class)->clearAllMerchantCache(); return json_success([], '修改成功'); } else { return json_fail('修改失败'); } } /** * 支付类型删除 * * @return \Illuminate\Http\JsonResponse|mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException */ public function paymentTypeDel() { $inputData = $this->getJsonData(); $rules = [ 'uid' => 'required|string', ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $res = PaymentTypeModel::query()->where('uid', $inputData['uid'])->delete(); if ($res) { Cache::forget(RedisKeyConstant::PAYMENTTYPE); app(CommonService::class)->clearAllMerchantCache(); return json_success([], '删除成功'); } else { return json_fail('删除失败'); } } /** * 下拉 * * @return \Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection */ public function dropDown() { $inputData = $this->getJsonData(); $rules = [ 'down_type' => 'required|in:1,2,3', 'pay_uid' => 'nullable|string' ]; $validator = app('validator')->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } if ($inputData['down_type'] == 1) { $res = PaymentModel::query()->get(['uid', 'name'])->keyBy('uid'); } elseif ($inputData['down_type'] == 2) { $model = PaymentAttrModel::query(); if (!empty($inputData['pay_uid'])) { $model = $model->where('pay_uid', $inputData['pay_uid']); } $res = $model->get(['uid', 'name', 'pay_uid'])->keyBy('uid'); } else { $res = PaymentTypeModel::query()->where('status', 1)->get(['uid', 'name', 'payment_uid'])->keyBy('uid'); if ($res->isNotEmpty()) { foreach ($res as &$val) { $val->name = $val->payment->name . '-' . $val->name; unset($val->payment, $val->payment_uid); } } } return $res; } }