getUser(); $user_id = $user['id']; #当前日期 $sdefaultDate = date("Y-m-d"); #$first =1 表示每周星期一为开始日期 0表示每周日为开始日期 $first = 1; #获取当前周的第几天 周日是 0 周一到周六是 1 - 6 $w = date('w', strtotime($sdefaultDate)); #获取本周开始日期,如果$w是0,则表示周日,减去 6 天 $week_start = date('Y-m-d', strtotime("$sdefaultDate -" . ($w ? $w - $first : 6) . ' days')); #本周结束日期 $week_end = strtotime("$week_start +6 days"); $week_start = strtotime($week_start); $week_end = $week_end + 86399; #我的排名 $my_rank = '暂未上榜'; $my_prize_title = 0; $my_prize_imgurl = 0; $my_order_total = Order::field('order_total') ->where('user_id', '=', $user_id) ->where('addtime', 'between', [$week_start, $week_end]) ->where('status', '=', 1) ->where('order_type', '<', 5) ->sum('order_total'); $my_order_total = $my_order_total ? $my_order_total : 0; #排行榜 $data = Order::field('user_id,sum(`order_total`) as order_total') ->append(['user_info']) ->where('addtime', 'between', [$week_start, $week_end]) ->where('status', '=', 1) ->where('order_type', '<', 5) ->group('user_id') ->order('order_total desc,user_id asc') ->limit(30) ->select()->toArray(); foreach ($data as $key => &$value) { $rank = $key + 1; $value['rank'] = $rank; $value['order_total'] = $value['order_total'] * 1; $value['nickname'] = $value['user_info']['nickname']; $value['headimg'] = $value['user_info']['headimg']; #奖品信息 $prize_info = GoodsList::field('title,imgurl') ->where('goods_id', '=', -1) ->where('rank', '=', $rank) ->find(); if ($prize_info) { $value['prize_title'] = $prize_info['title']; $value['prize_imgurl'] = imageUrl($prize_info['imgurl']); } else { $value['prize_title'] = ''; $value['prize_imgurl'] = ''; } #判断会员是否在排名里面 if ($value['user_id'] == $user_id) { $my_rank = $rank; $my_prize_title = $value['prize_title']; $my_prize_imgurl = $value['prize_imgurl']; } unset($value['user_info']); } $new_data = [ 'date' => (date('m月d日', $week_start) . '-' . date('m月d日', $week_end)), 'end_date' => $week_end, 'my_rank' => [ 'my_rank' => $my_rank, 'my_prize_title' => $my_prize_title, 'my_prize_imgurl' => $my_prize_imgurl, 'my_order_total' => $my_order_total, 'my_nickname' => $user['nickname'], 'my_headimg' => imageUrl($user['headimg']), ], 'data' => $data, ]; return $this->renderSuccess("请求成功", $new_data); } /** * 月榜排行奖励 */ public function rank_month() { $user = $this->getUser(); $user_id = $user['id']; #获取本月开始的时间戳 $beginThismonth = mktime(0, 0, 0, (int)date('m'), 1, (int)date('Y')); #获取本月结束的时间戳 $endThismonth = mktime(23, 59, 59, (int)date('m'), (int)date('t'), (int)date('Y')); #我的排名 $my_rank = '暂未上榜'; $my_prize_title = 0; $my_prize_imgurl = 0; $my_order_total = Order::field('order_total') ->where('user_id', '=', $user_id) ->where('addtime', 'between', [$beginThismonth, $endThismonth]) ->where('status', '=', 1) ->where('order_type', '<', 5) ->sum('order_total'); $my_order_total = $my_order_total ? $my_order_total : 0; #排行榜 $data = Order::field('user_id,sum(`order_total`) as order_total') ->append(['user_info']) ->where('addtime', 'between', [$beginThismonth, $endThismonth]) ->where('status', '=', 1) ->where('order_type', '<', 5) ->group('user_id') ->order('order_total desc,user_id asc') ->limit(30) ->select()->toArray(); foreach ($data as $key => &$value) { $rank = $key + 1; $value['rank'] = $rank; $value['order_total'] = $value['order_total'] * 1; $value['nickname'] = $value['user_info']['nickname']; $value['headimg'] = $value['user_info']['headimg']; #奖品信息 $prize_info = GoodsList::field('title,imgurl') ->where('goods_id', '=', -2) ->where('rank', '=', $rank) ->find(); if ($prize_info) { $value['prize_title'] = $prize_info['title']; $value['prize_imgurl'] = imageUrl($prize_info['imgurl']); } else { $value['prize_title'] = ''; $value['prize_imgurl'] = ''; } #判断会员是否在排名里面 if ($value['user_id'] == $user_id) { $my_rank = $rank; $my_prize_title = $value['prize_title']; $my_prize_imgurl = $value['prize_imgurl']; } unset($value['user_info']); } $new_data = [ 'date' => (date('m月d日', $beginThismonth) . '-' . date('m月d日', $endThismonth)), 'end_date' => $endThismonth, 'my_rank' => [ 'my_rank' => $my_rank, 'my_prize_title' => $my_prize_title, 'my_prize_imgurl' => $my_prize_imgurl, 'my_order_total' => $my_order_total, 'my_nickname' => $user['nickname'], 'my_headimg' => imageUrl($user['headimg']), ], 'data' => $data, ]; return $this->renderSuccess("请求成功", $new_data); } }