1],$uid); $contribute = User::where("uid",$uid)->value('contribute'); UserBill::income("绑定手机号获的贡献值",$uid,"contribute","add",$levelinfo['contribute'],0,$contribute,"绑定手机号获的贡献值:".$levelinfo['contribute']); } return true; } public static function level_order($order_info) { $user = User::find($order_info['uid']); if($order_info['is_level']==1) { $levelinfo = SystemUserLevel::find($order_info['level']); if ($user['level'] = $order_info['level']) { UserLevel::setUserLevel($user['uid'], $order_info['level']); } User::bcInc($order_info['uid'], "contribute", $levelinfo['contribute']); $contribute = User::where("uid", $order_info['uid'])->value('contribute'); UserBill::income("升级获的贡献值", $order_info['uid'], "contribute", "add", $levelinfo['contribute'], 0, $contribute, "升级获的贡献值:" . $levelinfo['contribute']); self::recommend($order_info, $user); } } private static function recommend($order,$user) { if($user['spread_uid']) { $sp_user = User::find($user['spread_uid']); if($sp_user['level']==0) return true; $level = []; foreach (sys_data("level") as $v) { $level[$v['level']] = $v; } if(!isset($level[$sp_user['level']])) return true; $level_info = $level[$sp_user['level']]; $num = $level_info["level_".$order['level']]; $data['uid'] = $sp_user['uid']; $data['add_time'] = time(); $all_data = []; for ($i=0;$i<$num;$i++) { $data['verify_code'] = uniqid().$i; $all_data[] = $data; } Card::setAll($all_data); $count = Card::where('uid',$user['spread_uid'])->value("count(id)")?:0; UserBill::income("推荐用户",$user['spread_uid'],"card","add",$num,0,$count,"推荐用户获得:".$count."张卡券"); } return true; } public static function area($order,$user) { //dump($user); // dump($order); //发放店长 if($user['level']!=4) { $users = User::field('uid,level,spread_uid,brokerage_price')->select(); $rs = UtilService::getparentid($users, $user['uid']); $store_uid = 0; foreach ($rs as $v) { if ($v['level'] == 4) { $store_uid = $v['uid']; break; } } if ($store_uid > 0) { $trem_count = SystemUserLevel::find(4)['trem_count']; $brokerage_price = bcmul($order['total_price'], bcdiv($trem_count, 100, 2), 2); UserBill::income("店长团队进货量", $store_uid, "month_performance", "add", $brokerage_price, $order['id'], 0, "订单金额:{$order['total_price']},店长团队进货量:" . $brokerage_price); } } else { UserBill::income("店长进货量", $user['uid'], "month_performance", "add", $order['total_price'], $order['id'], 0, "订单金额:{$order['total_price']},店长进货量:" . $order['total_price']); } //发放代理奖 $one = SystemCity::where("city_id",$order['city_id'])->find(); $two = SystemCity::where("city_id",$one['parent_id'])->find(); $three = SystemCity::where("city_id",$two['parent_id'])->find(); if($one && $one['agent_uid']>0) { $agent_income = SystemUserLevel::find(5)['agent_income']; $brokerage_price = bcmul($order['total_price'],bcdiv($agent_income,100,2),2); User::bcInc($one['agent_uid'],"brokerage_price",$brokerage_price,"uid"); $userInfo = User::find($one['agent_uid']); UserBill::income("区代奖励",$one['agent_uid'],"now_money","brokerage",$brokerage_price, $order['id'],$userInfo['brokerage_price'],"用户下单金额{$order['total_price']},市代奖励:".$brokerage_price); } if($two && $two['agent_uid']>0) { $agent_income = SystemUserLevel::find(6)['agent_income']; $brokerage_price = bcmul($order['total_price'],bcdiv($agent_income,100,2),2); User::bcInc($two['agent_uid'],"brokerage_price",$brokerage_price,"uid"); $userInfo = User::find($two['agent_uid']); UserBill::income("市代奖励",$two['agent_uid'],"now_money","brokerage",$brokerage_price, $order['id'],$userInfo['brokerage_price'],"用户下单金额{$order['total_price']},市代奖励:".$brokerage_price); } if($three && $three['agent_uid']>0) { $agent_income = SystemUserLevel::find(7)['agent_income']; $brokerage_price = bcmul($order['total_price'],bcdiv($agent_income,100,2),2); User::bcInc($three['agent_uid'],"brokerage_price",$brokerage_price,"uid"); $userInfo = User::find($three['agent_uid']); UserBill::income("省代奖励",$three['agent_uid'],"now_money","brokerage",$brokerage_price, $order['id'],$userInfo['brokerage_price'],"用户下单金额{$order['total_price']},市代奖励:".$brokerage_price); } } public static function recommend1($orderInfo) { $user = User::find($orderInfo['uid']); $cartId = is_string($orderInfo['cart_id']) ? json_decode($orderInfo['cart_id'], true) : $orderInfo['cart_id']; $one = StoreProduct::getProductBrokerage($cartId); $two = StoreProduct::getProductBrokerage($cartId,false); @file_put_contents('recommend1.txt',$one.'--'.$two); $one_user = User::find($user['spread_uid']); if($one_user) { User::bcInc($one_user['uid'], "brokerage_price", $one, "uid"); //$one_user = User::find($user['spread_uid']); $brokerage_price = bcadd($one_user['brokerage_price'],$one,2); UserBill::income("推荐奖励", $one_user['uid'], "now_money", "brokerage", $one, $orderInfo['id'], $brokerage_price, "用户下单金额{$orderInfo['total_price']},推荐奖励:" . $one); } return true; if($one_user && $two_user = User::find($one_user['spread_uid'])) { if($two_user) { User::bcInc($two_user['uid'], "brokerage_price", $two, "uid"); //$one_user = User::find($user['spread_uid']); $brokerage_price = bcadd($two_user['brokerage_price'], $two, 2); UserBill::income("间推奖励", $two_user['uid'], "now_money", "brokerage", $two, $orderInfo['id'], $brokerage_price, "用户下单金额{$orderInfo['total_price']},间推奖励:" . $two); } } $recommend = bcadd($one,$two,2); //处理团队 $team = 0; $profit = bcsub($orderInfo['total_price'],$orderInfo['cost'],2); $users = User::field('uid,level,spread_uid,brokerage_price,area_level')->select(); $rs = UtilService::getparentid($users, $user['uid']); $max_differential = SystemUserLevel::max('differential'); $differential = 0; $levels1 = SystemUserLevel::where('is_del',0)->where('is_show',1)->field('id,differential,flat_level')->select()->toArray(); $levels = []; foreach ($levels1 as $v) { $levels[$v['id']] = $v; } $flat_level = []; foreach ($rs as $v) { if(isset($levels[$v['level']]) && $levels[$v['level']]['differential']>$differential) { $num = bcsub($levels[$v['level']]['differential'],$differential,2); $brokerage_price = bcmul(bcdiv($num,100,2),$profit,2); $team = bcadd($team,$brokerage_price,2); User::bcInc($v['uid'], "brokerage_price", $brokerage_price, "uid"); $sp = User::find($v['uid']); UserBill::income("团队奖励", $v['uid'], "now_money", "brokerage", $brokerage_price, $orderInfo['id'], $sp['brokerage_price'], "用户下单金额{$orderInfo['total_price']},团队奖励:" . $brokerage_price); $differential = $levels[$v['level']]['differential']; } elseif(isset($levels[$v['level']]) && !in_array($v['level'],$flat_level)) { $flat_level[] = $v['level']; if($levels[$v['level']]['flat_level']>0) { $num = $levels[$v['level']]['flat_level']; $brokerage_price = bcmul(bcdiv($num,100,3),$profit,2); $team = bcadd($team,$brokerage_price,2); User::bcInc($v['uid'], "brokerage_price", $brokerage_price, "uid"); $sp = User::find($v['uid']); UserBill::income("平级奖励", $v['uid'], "now_money", "brokerage", $brokerage_price, $orderInfo['id'], $sp['brokerage_price'], "用户下单金额{$orderInfo['total_price']},平级奖励:" . $brokerage_price); } } if($differential==$max_differential) { break; } } //处理全公司分红 $v3_bonus = sys_config('v3_bonus',2); $bonus = bcmul($profit,bcdiv($v3_bonus,100,2),2); //处理总公司 $next_profit = bcsub($profit,bcadd(bcadd($recommend,$team,2),$bonus,2),2); $next_profit = bcsub($next_profit,bcmul(bcdiv(sys_config('verifier'),100,2),bcsub($orderInfo['total_price'],$orderInfo['deduction_price'],2),2),2); $head_office_uid = sys_config('head_office_uid'); if($head_office_uid>0) { $brokerage_price = bcmul(bcdiv(sys_config('head_office'),100,2),$next_profit,2); User::bcInc($head_office_uid, "brokerage_price", $brokerage_price, "uid"); $sp = User::find($head_office_uid); UserBill::income("总公司收益分红",$head_office_uid, "now_money", "brokerage", $brokerage_price, $orderInfo['id'], $sp['brokerage_price'], "用户下单金额{$orderInfo['total_price']},总公司收益:" . $brokerage_price); } //处理分公司 foreach ($rs as $v) { if($v['area_level']==9) { $brokerage_price = bcmul(bcdiv(sys_config('branch_office'),100,2),$next_profit,2); User::bcInc($v['uid'], "brokerage_price", $brokerage_price, "uid"); $sp = User::find($v['uid']); UserBill::income("分公司收益分红", $v['uid'], "now_money", "brokerage", $brokerage_price, $orderInfo['id'], $sp['brokerage_price'], "用户下单金额{$orderInfo['total_price']},分公司收益分红:" . $brokerage_price); break; } } /* //处理店长 $store_uid = SystemStore::where('id',$orderInfo['store_id'])->value('uid'); if($store_uid>0) { $brokerage_price = bcmul(bcdiv(sys_config('branch_office'),100,2),$next_profit,2); User::bcInc($store_uid, "brokerage_price", $brokerage_price, "uid"); $sp = User::find($store_uid); UserBill::income("分公司收益分红",$store_uid, "now_money", "brokerage", $brokerage_price, $orderInfo['id'], $sp['brokerage_price'], "用户下单金额{$orderInfo['total_price']},分公司收益:" . $brokerage_price); }*/ //处理股东 foreach ($rs as $v) { if($v['area_level']==8) { $brokerage_price = bcmul(bcdiv(sys_config('shareholder'),100,2),$next_profit,2); User::bcInc($v['uid'], "brokerage_price", $brokerage_price, "uid"); $sp = User::find($v['uid']); UserBill::income("股东收益", $v['uid'], "now_money", "brokerage", $brokerage_price, $orderInfo['id'], $sp['brokerage_price'], "用户下单金额{$orderInfo['total_price']},股东收益:" . $brokerage_price); break; } } StoreOrder::edit(compact('recommend','bonus','team'),$orderInfo['id']); return true; } public static function day() { $sum = StoreOrder::where('paid',1)->where('refund_status',0)->whereDay('pay_time','yesterday')->value('sum(bonus)')?:0; $uids = User::where('level',4)->column('uid'); if($sum && sizeof($uids)) { $brokerage_price = bcdiv($sum,sizeof($uids),2); foreach ($uids as $v) { User::bcInc($v, "brokerage_price", $brokerage_price, "uid"); $sp = User::find($v); UserBill::income("V3全公司分红", $v, "now_money", "brokerage", $brokerage_price, 0, $sp['brokerage_price'], "全公司总分红{$sum},V3用户数:".sizeof($uids)."人,每人收益:" . $brokerage_price); } } return true; } }