account_id; $merchant_user_id = $request->merchant_user_id; $dead_time = $request->dead_time; $price = $request->price; $status = $request->status ?? 1; if (!$merchant_id || !$merchant_user_id || !$dead_time || !$price) { return $this->failure('参数不全'); } $rewards = RewardUser::where('merchant_id', $merchant_id)->where('merchant_user_id', $merchant_user_id) ->first(); if ($rewards) { return $this->failure('此悬赏已存在'); } $rewards = new RewardUser(); $rewards->merchant_id = $merchant_id; $rewards->merchant_user_id = $merchant_user_id; $rewards->dead_time = $dead_time . ' 23:59:59'; $rewards->price = $price; $rewards->status = $status; $rewards->save(); return $this->success('ok', $rewards); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 更新悬赏 * @param Request $request * @return JsonResponse|string */ public function updateReward(Request $request) { try { $merchant_id = $request->account_id; $merchant_user_id = $request->merchant_user_id; $dead_time = $request->dead_time; $price = $request->price; $status = $request->status ?? 1; $reward_id = $request->reward_id; if (!$merchant_id || !$merchant_user_id || !$dead_time || !$price || !$reward_id) { return $this->failure('参数不全'); } $rewards = RewardUser::where('merchant_id', $merchant_id)->where('merchant_user_id', $merchant_user_id) ->where('id', $reward_id) ->first(); if (!$rewards) { return $this->failure('此悬赏不存在'); } $rewards->status = $status; $rewards->merchant_id = $merchant_id; $rewards->merchant_user_id = $merchant_user_id; $rewards->dead_time = $dead_time . ' 23:59:59'; $rewards->price = $price; $rewards->save(); return $this->success('ok', $rewards); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 悬赏列表 * @param Request $request * @return LengthAwarePaginator|JsonResponse */ public function getReward(Request $request) { try { $reward_id = $request->reward_id; $merchant_id = $request->account_id; $merchant_user_id = $request->merchant_user_id; $reward_list = RewardUser::with('merchantUser', 'merchantUser.mpUser', 'merchantUser.profile') ->where('merchant_id', $merchant_id) ->where('merchant_user_id', $merchant_user_id) ->when($reward_id, function ($query) use ($reward_id) { $query->where('id', $reward_id); }) ->orderBy('id', 'desc') ->paginate(); foreach ($reward_list as $key => $val) { $jump_url = urlencode(env('APP_URL') . '/pu/#/rewardIndex/' . $val['id']); $url = env('APP_URL') . '/api/official/live/wechat/FamilyAuth?merchant_id=' . $merchant_id . '&url=' . $jump_url; $qr_code_url = $this->getPreviewQrcode($url); $val->url = $url; $val->qr_code_url = $qr_code_url; } return $reward_list; } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 悬赏转发记录 * @param Request $request * @return JsonResponse */ public function getRewardTransmit(Request $request): JsonResponse { try { $merchant_id = $request->account_id; $reward_id = $request->reward_id; $rewards = RewardUser::where('merchant_id', $merchant_id)->where('id', $reward_id) ->first(); if (!$rewards) { return $this->failure('悬赏不存在或已删除'); } $transmit = RewardTransmit::where('reward_id', $reward_id) ->orderBy('id', 'desc') ->paginate(); return $this->success('ok', $transmit); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 悬赏报名记录 * @param Request $request */ public function getRewardSignUpList(Request $request) { try { $merchant_id = $request->account_id; $reward_id = $request->reward_id; $rewards = RewardUser::where('merchant_id', $merchant_id)->where('id', $reward_id) ->first(); if (!$rewards) { return $this->failure('悬赏不存在或已删除'); } $sign = RewardSignUp::with('merchantUser', 'merchantUser.mpUser', 'merchantUser.profile', 'fromUser') ->where('reward_id', $reward_id) ->orderBy('id', 'desc') ->paginate(); foreach ($sign as $key => $value) { $value->count = RewardFollow::where('reward_id', $value->reward_id)->where('m_user_id', $value->merchant_user_id)->count(); } return $this->success('ok', $sign); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 悬赏跟进 * @param Request $request */ public function rewardFollow(Request $request) { try { $admin_id = $request->merchant_admin_id ?? 0; $reward_id = $request->reward_id; $reward = RewardUser::find($reward_id); if (!$reward) return $this->failure('悬赏不存在'); $way = $request->way; $content = $request->input('content'); $result = $request->result; RewardFollow::create([ 'm_user_id' => $request->m_user_id, 'reward_id' => $reward_id, 'way' => $way, 'content' => $content, 'result' => $result, 'photo' => !empty($request->photo) ? json_encode($request->photo) : null, 'admin_id' => $admin_id, ]); return $this->success('ok'); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 悬赏跟进列表 * @param Request $request */ public function rewardFollows(Request $request) { try { $reward_id = $request->reward_id; $m_user_id = $request->m_user_id; if (empty($reward_id) || empty($m_user_id)) return $this->failure('参数不全'); $merchant_user = MerchantUser::where('id', $m_user_id)->select('id', 'nickname', 'mobile')->first(); $follows = RewardFollow::where(['reward_id' => $reward_id, 'm_user_id' => $m_user_id])->orderBy('id', 'desc')->paginate(); foreach ($follows as $key => $value) { if ($value->admin_id == 0) { $anchor = Anchor::where('m_id', $request->account_id)->first(); $user['pic'] = !empty($anchor) ? $anchor->pic : User::DefaultAvatar; $user['name'] = !empty($anchor) ? $anchor->name : '未获取'; } else { $member = MerchantMembers::where('mch_id', $request->account_id)->where('admin_id', $value->admin_id)->first(); $user['pic'] = !empty($member) ? $member->avatar : User::DefaultAvatar; $user['name'] = !empty($member) ? $member->name : '未获取'; } $value->user = $user; $value->photo = json_decode($value->photo, true); } return $this->success('ok', compact('merchant_user', 'follows')); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } }