12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- namespace app\models\user;
- use app\models\user\User;
- use app\models\user\UserBill;
- use crmeb\basic\BaseModel;
- class Achievement extends BaseModel
- {
- public static function do_Fhllirun()
- {
- $send = [];
- $uids = User::select();
- $group_award = sys_data('achievement_award');
- foreach ($group_award as $key => $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)->where('from_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;
- }
- }
|