$row) { $award[$key] = $row['award']; } foreach ($uids as $v) { $award = 0; foreach ($group_award as $value) { $sub = User::where('spread_uid', $v['uid'])->column('uid'); $achievements = self::where('uid', 'in', $sub)->field('uid,sum(achievement) as sum')->group('uid')->select(); $count = 0; foreach ($achievements as $vv) { if ($vv['sum'] >= $value['sub_achievement']) { $count++; } } if ($count >= $value['sub_member']) { $award = $value['award']; break; } } if ($award <= 0) continue; $achievement = self::where('do', 0)->where('uid', $v['uid'])->sum('achievement'); $award = bcmul($achievement, $award, 2); if (isset($send[$v['uid']])) $send[$v['uid']] += (float)$award; else { $send[$v['uid']] = (float)$award; } $spread = User::where('uid', $v['spread_uid'])->find(); if (isset($send[$spread['uid']])) $send[$spread['uid']] -= (float)$award; else { $send[$spread['uid']] = -(float)$award; } } foreach ($send as $k => $v) { $achievement = self::where('do', 0)->where('uid', $k)->sum('achievement'); if ($v > 0) { $spreadUserInfo = User::getUserInfo($k); User::where('uid', $k)->inc('brokerage_price', $v)->update(); $balance = bcadd($spreadUserInfo['brokerage_price'], $v, 2); $mark = '本月新增业绩' . $achievement . '台,恭喜获得当月新增业绩奖金' . $v; UserBill::income('获得当月新增业绩奖金', $k, 'now_money', 'brokerage', $v, 0, $balance, $mark); } } self::where('do', 0)->update(['do' => 1]); return true; } }