|
|
@@ -636,47 +636,20 @@ where u.portrait != '' and u.portrait is not null and l.duration > 15 group by
|
|
|
return $this->response(5002, '活动末结束');
|
|
|
}
|
|
|
|
|
|
- $ranking = Db::table('awards_user_task_log')->alias("l")
|
|
|
- ->leftJoin('awards_user_info u', 'l.uid = u.uid')
|
|
|
- ->field(['u.nickname', 'u.portrait', 'u.uid', 'l.duration', 'l.number'])
|
|
|
- ->distinct('l.uid')
|
|
|
- ->order('l.number', 'desc')
|
|
|
- ->order('l.duration', 'asc')
|
|
|
- ->limit(50)
|
|
|
- ->select();
|
|
|
+ $orders = Db::query("select u.nickname, u.portrait,o.gift_id, g.name as giftName from awards_order as o
|
|
|
+ left join awards_user_info as u on o.uid = u.uid
|
|
|
+ left join awards_gift as g on o.gift_id = g.id where o.type = 2 order by o.rank asc");
|
|
|
|
|
|
$isWinAward = 0;
|
|
|
- $rank = 0;
|
|
|
- foreach ($ranking as $key => $val) {
|
|
|
- if ($val['uid'] == Safe::$user['uid']) {
|
|
|
+ $giftId = 0;
|
|
|
+ foreach ($orders as $val) {
|
|
|
+ if ($val['uid'] == Safe::$user['uid'] && !empty($val['rank'])) {
|
|
|
$isWinAward = 1;
|
|
|
- $rank = $key +1;
|
|
|
+ $giftId = $val['gift_id'];
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- $giftId = 0;
|
|
|
- // 如果中奖 插入用户中奖信息
|
|
|
- if ($isWinAward == 1) {
|
|
|
- $gifts = Db::table('awards_gift')->where('type', 2)->select();
|
|
|
- foreach ($gifts as $val) {
|
|
|
- if ($rank >= $val['min_rank'] && $rank <= $val['max_rank']) {
|
|
|
- $giftId = $val['id'];
|
|
|
- $orders = Db::table('awards_order')->where('uid', Safe::$user['uid'])->where('type', 2)->find();
|
|
|
- if (empty($orders)) {
|
|
|
- $order = [
|
|
|
- 'uid' => Safe::$user['uid'],
|
|
|
- 'gift_id' => $giftId,
|
|
|
- 'type' => 2,
|
|
|
- 'create_at' => time(),
|
|
|
- ];
|
|
|
- Db::table('awards_order')->insert($order);
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
return $this->successResponse([
|
|
|
'isWinAward' => $isWinAward,
|
|
|
'giftId' => $giftId
|