success("这是一个Admin测试接口"); } /** * 服务商活动成员 * @param Request $request * @return JsonResponse|string */ public function members(Request $request){ try { $type_id = $request->type_id; $type = $request->type; $keyword = $request->keyword; $pay_status = $request->pay_status??2; switch ($type) { case 'information': $type = 'reward_info'; break; case 'activity': $type = 'community'; break; case 'service': $type = 'community'; break; default: $type = $type; break; } $members = TouristOrder::where('type', $type)->where('type_id',$type_id)->orderBy('id','desc'); if($pay_status != 2){ $members = $members->where('pay_status',$pay_status); } if($keyword){ $keyword = trim($keyword); $members = $members->where(function($sql) use($keyword){ $sql->where('name','like','%'.$keyword.'%')->orWhere('mobile','like','%'.$keyword.'%'); }); } $members = $members->paginate(); return $this->success('ok',$members); } catch (\Exception $e) { $this->getError($e); return $this->failure('操作失败'); } } /** * 数据分析 * @param Request $request * @return JsonResponse|string */ public function dataAnalysis(Request $request){ try { $type = $request->type; $type_id = $request->type_id; $data = []; $watch_user_count = 0;//访问人数 $consume_user_count = 0;//消费人数 $consume_cash_amount = 0;//支付金额 $love_watch_user_count = 0;//福恋消费人数 if ($type == 'course') { $watch_user_count = Redis::zscore('coursepv', $type_id) ?? 0; } elseif ($type == 'community') { $watch_user_count = CommunityActivity::where('id', $type_id)->value('pv') ?? 0; } elseif ($type == 'consult') { $watch_user_count = Redis::zscore('consulation', $type_id) ?? 0; } elseif ($type == 'shop') { $watch_user_count = Redis::zscore('shop', $type_id) ?? 0; } elseif ($type == 'information') { $watch_user_count = Redis::zscore('information', $type_id); $type = 'reward_info'; } $obj = TouristOrder::where('type', $type)->where('type_id', $type_id)->whereIn('pay_status', [1, 4]); $love_obj = TouristOrder::where('type', $type)->where('type_id', $type_id)->wherein('channel', [1, 2, 3])->whereIn('pay_status', [1, 4]); $consume_user_count = $obj->count(); $consume_cash_amount = $obj->sum('price'); $love_consume_user_count = $love_obj->count(); $love_consume_cash_amount = $love_obj->sum('price'); $data['consume_user_count'] = $consume_user_count; $data['consume_cash_amount'] = $consume_cash_amount; $data['love_consume_user_count'] = $love_consume_user_count; $data['love_consume_cash_amount'] = $love_consume_cash_amount; $data['watch_user_count'] = $watch_user_count; $data['love_watch_user_count'] = Redis::zscore('love_' . $type . '_pv', $type_id) ?? 0; return $this->success('ok', $data); }catch (\Exception $e){ $this->getError($e); return $this->failure('服务器休息了,请稍后再试'); } } /** * 订单数据统计 * @param Request $request * @return JsonResponse|string */ public function weekOrdersStat(Request $request){ try { $type_id = $request->type_id;//id $type = $request->type; if ($type == 'information') $type = 'reward_info'; $week_consume_user_count = 0;//一周消费人数 $week_consume_cash_amount = 0;//一周支付金额 if ($request->start_time && $request->end_time) { $start_time = $request->start_time; $end_time = $request->end_time; //间隔天数 $between_time = ceil((strtotime($end_time) - strtotime($start_time)) / 3600 / 24) + 1; for ($i = 0; $i < $between_time; $i++) { $date[] = date("Y-m-d", strtotime("+$i day", strtotime($start_time))); } } foreach ($date as $start_time) { $date_arr[] = $start_time; $start_time = $start_time . ' 00:00:00'; $end_time = date("Y-m-d 23:59:59", strtotime($start_time)); $week_consume_user_count = TouristOrder::where('type', $type)->where('type_id', $type_id)->whereIn('pay_status', [1, 4])->whereBetween('created_at', [$start_time, $end_time])->count(); $consume_user_count[] = $week_consume_user_count; $love_week_consume_user_count = TouristOrder::where('type', $type)->where('type_id', $type_id)->whereIn('pay_status', [1, 4])->wherein('channel', [1, 2, 3])->whereBetween('created_at', [$start_time, $end_time])->count(); $love_consume_user_count[] = $love_week_consume_user_count; } return $this->success('ok', compact('date_arr', 'consume_user_count', 'love_consume_user_count')); }catch (\Exception $e){ $this->getError($e); return $this->failure('服务器休息了,请稍后再试'); } } /** * 分成收益记录 * @param Request $request * @return JsonResponse|string */ public function earningRecord(Request $request) { try { $keyword = $request->keyword; $sharer = $request->sharer; $m_order_id = TouristOrder::where('type', $request->type)->where('type_id', $request->type_id)->pluck('id'); $result = MEarning::select('id', 'm_id', 'm_user_id', 'ratio', 'sub_ratio', 'm_order_id', 'sharer', 'value', 'status', 'created_at')->wherein('m_order_id', $m_order_id)->wherenotin('type', ['system', 'reward']); if ($sharer) $result = $result->where('sharer', $sharer); if ($keyword) { $keyword = trim($keyword); $result = $result->whereHas('order', function ($sql) use ($keyword) { $sql->where('name', 'like', '%' . $keyword . '%') ->orWhere('mobile', 'like', '%' . $keyword . '%') ->orWhere('desc', 'like', '%' . $keyword . '%'); }); } $result = $result->where('type', '<>', 'enter'); $result = $result->orderBy('id', 'desc')->paginate(); foreach ($result as $key => $value) { if ($value->user) { $value->sharer_user_name = $value->user->nickname ?? '匿名用户'; $value->sharer_user_pic = $value->user->pic ?? User::DefaultAvatar; $value->sharer_user_mobile = $value->user->mobile ?? ''; } else { $merchant_id = TouristOrder::where('id', $m_order_id)->value('merchant_id'); $user = MerchantAccount::where('id', $merchant_id)->first(); $value->sharer_user_name = $user->anchor->name ?? '匿名用户'; $value->sharer_user_pic = $user->anchor->pic ?? User::DefaultAvatar; $value->sharer_user_mobile = $user->mobile ?? ''; } $value->pay_user_mobile = $value->order->mobile ?? ''; $payUser = 0; if ($value->order) { $payUser = MerchantUser::where('id', $value->order->account_id)->first(); } $value->pay_user_mobile = $value->order->mobile ?? ''; $value->title = $value->order->desc ?? ''; $value->order_price = $value->order->price ?? 0; $value->pay_user_name = !empty($payUser) ? $payUser->nickname : '匿名用户'; $value->pay_user_pic = !empty($payUser) ? $payUser->pic : User::DefaultAvatar; switch ($value->sharer) { case 'first_sharer': $value->sharer = '首邀'; break; case 'other_sharer': $value->sharer = '间接'; break; case 'last_sharer': $value->sharer = '促成'; break; case 'merchant': $value->sharer = '商家'; break; default: $value->sharer = '商家'; break; } unset($value->user); unset($value->order); } return $this->success('ok', $result); }catch (\Exception $e){ $this->getError($e); return $this->failure('服务器休息了,请稍后再试'); } } }