merchant_user_id; $reward_id = $request->reward_id; if(!$reward_id){ return $this->failure('悬赏ID不能为空'); } $reward_transmit = new RewardTransmit(); $reward_transmit->reward_id = $reward_id; $reward_transmit->merchant_user_id = $merchant_user_id; $reward_transmit->save(); return $this->success('ok'); }catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 悬赏列表 * @param Request $request * @return LengthAwarePaginator|JsonResponse */ public function getRewardList(Request $request){ try { $reward_id = $request->reward_id; $merchant_id = $request->merchant_id; $reward_list = RewardUser::with('merchantUser','merchantUser.mpUser') ->where('status',1) ->where('merchant_id', $merchant_id) ->when($reward_id,function ($query) use($reward_id){ $query->where('id',$reward_id); }) ->orderBy('id','desc') ->paginate(); return $this->success('ok',$reward_list); }catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 悬赏详情 * @param Request $request * @return LengthAwarePaginator|JsonResponse */ public function getRewardDetail(Request $request){ try { $reward_id = $request->reward_id; $merchant_id = $request->merchant_id; $reward = RewardUser::with('merchantUser','merchantUser.mpUser','merchantUser.profile') ->where('merchant_id', $merchant_id) ->when($reward_id,function ($query) use($reward_id){ $query->where('id',$reward_id); }) ->first(); $wechatUser = session('wechat.oauth_user.new'); if ($wechatUser) { $openid = $wechatUser->getId(); } else { $openid = MerchantUser::where('id', $request->merchant_user_id)->value('openid'); } $jump_url = urlencode(env('APP_URL') . '/pu/#/rewardEditor/' . $reward['id']); $url = env('APP_URL') . '/api/official/live/wechat/FamilyAuth?merchant_id=' . $merchant_id . '&from_openid=' . $openid . '&url=' . $jump_url; $qr_code_url = $this->getPreviewQrcode($url); $reward->qr_code_url = $qr_code_url; $reward_sign = RewardSignUp::where('reward_id',$reward_id) ->where('merchant_user_id',$request->merchant_user_id) ->first(); if($reward_sign){ $reward->is_sign_up = 1; }else{ $reward->is_sign_up = 0; } return $this->success('ok',$reward); }catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 悬赏报名 * @param Request $request * @return JsonResponse|string */ public function rewardSignUp(Request $request){ try { $merchant_id = $request->merchant_id; $reward_id = $request->reward_id; $merchant_user_id = $request->merchant_user_id; $mobile = $request->mobile; $name = $request->name; $code = $request->code; $from_openid = $request->from_openid; if(!$mobile || !$name || !$code || !$reward_id || !$merchant_id){ return $this->failure('参数不全'); } $sms = new Sms(new App); $result = $sms->check($mobile, $code); if ($result) { switch ($result) { case '请填写验证码': return $this->respv2($result, ['status' => 7, 'message' => '请填写验证码']); break; case '验证码有误': return $this->respv2($result, ['status' => 8, 'message' => '验证码有误']); break; case '验证码过期': return $this->respv2($result, ['status' => 9, 'message' => '验证码过期']); break; case '验证码已使用': return $this->respv2($result, ['status' => 10, 'message' => '验证码已使用']); break; default: # code... break; } } $reward = RewardUser::where('merchant_id',$merchant_id)->where('id',$reward_id) ->where('status',1) ->first(); if(!$reward){ return $this->failure('你慢了一步,此悬赏已结束'); } DB::beginTransaction(); $user_id = $this->matchFulinkUser($merchant_user_id); if(!$user_id) { $user = User::where('mobile',$mobile)->first(); }else{ $user = User::where('id', $user_id)->first(); } if (!$user) { $user = new User(); $user->mobile = $mobile; $user->nickname = $name; $user->save(); } $profile = ProfileCourtship::where('user_id', $user->id) ->first(); if ($profile) { if ($profile->user_id && $profile->user_id != $user->id) { $profile->user_id = $user->id; $profile->save(); } } else { $profile = new ProfileCourtship(); $profile->user_id = $user->id; $profile->save(); } $merchant_user = MerchantUser::where('id',$merchant_user_id) ->first(); if($merchant_user){ $old_mobile_user = MerchantUser::where('mobile',$mobile)->first(); if(!$old_mobile_user) { if ($merchant_user->mobile != $mobile) { $merchant_user->mobile = $mobile; } } if(!$merchant_user->user_id){ $merchant_user->user_id = $user->id; } $merchant_user->save(); } $linkmen = json_encode(['name' => $name,'mobile' =>$mobile]); $reward_sign = new RewardSignUp(); $reward_sign->from_openid = $from_openid; $reward_sign->merchant_user_id = $merchant_user_id; $reward_sign->reward_id = $reward_id; $reward_sign->linkmen = $linkmen; $reward_sign->save(); DB::commit(); return $this->success('ok'); }catch (\Exception $e) { DB::rollBack(); $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } }