|
@@ -34,13 +34,14 @@ class Plantask extends Controller
|
|
|
Db::rollback();
|
|
|
exit;
|
|
|
}
|
|
|
- dump($user);
|
|
|
+// dump($user);
|
|
|
|
|
|
//我的多个下级,的推荐人,改成我的上级。也就是跳过了我
|
|
|
$my_down = Db::name('user')->where('intro_uid',$user['id'])->select();
|
|
|
+// dump($my_down);
|
|
|
if(!empty($my_down)){
|
|
|
foreach($my_down as $key => $down_user){
|
|
|
- $rs_down = $this->updateIntro($down_user['id'],$user['intro_uid']);
|
|
|
+ $rs_down = model('user')->updateIntro($down_user['id'],$user['intro_uid']);
|
|
|
if($rs_down !== true){
|
|
|
echo $rs_down;
|
|
|
Db::rollback();
|
|
@@ -50,112 +51,35 @@ class Plantask extends Controller
|
|
|
}
|
|
|
|
|
|
|
|
|
- //用不到了
|
|
|
+ //理论上已经用不到了,预防万一又被查到
|
|
|
//我滑落了,我的上级保持不变,下级都没了
|
|
|
- /*$my_update = [
|
|
|
+ $my_update = [
|
|
|
'intro_num' => 0,
|
|
|
'intro_num_all' => 0,
|
|
|
];
|
|
|
$rs2 = Db::name('user')->where('id',$user['id'])->update($my_update);
|
|
|
if($rs2 === false){
|
|
|
+ echo '更新自己错误';
|
|
|
Db::rollback();
|
|
|
- }*/
|
|
|
-
|
|
|
-
|
|
|
- //提交
|
|
|
- Db::rollback();
|
|
|
- }
|
|
|
-
|
|
|
- private function updateIntro($uid,$intro_uid){
|
|
|
-
|
|
|
- $db = Db::name("user");
|
|
|
- //验证
|
|
|
- if($uid == $intro_uid) $this->error("新邀请人不能是自己!");
|
|
|
-
|
|
|
- $rs_user = $db->where(array('id' => $uid))->find();
|
|
|
- if(!$rs_user) $this->error("会员 ".$uid.' 不存在! ');
|
|
|
-
|
|
|
- $rs_intro = $db->where(array('id' => $intro_uid))->find();
|
|
|
- if(!$rs_intro) $this->error("新邀请人 ".$intro_uid.' 不存在! ');
|
|
|
-
|
|
|
- if($rs_user['intro_uid'] == $intro_uid) $this->error("新邀请人不能是原来的邀请人!");
|
|
|
-
|
|
|
- //新推荐人不能是自己下级
|
|
|
- if($rs_intro['intro_ids']) {
|
|
|
- $ary = explode(',', $rs_intro['intro_ids']);
|
|
|
- if(in_array($rs_user['id'], $ary)) {
|
|
|
- $this->error("新邀请人不能是自己网体下级会员!");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //更新此会员的上级
|
|
|
- $data = array();
|
|
|
- $data['intro_ids'] = $rs_intro['intro_ids'] ? $rs_intro['intro_ids'].','.$rs_intro['id'] : $rs_intro['id']; //新推荐人id序列
|
|
|
- $data['intro_level'] = $rs_intro['intro_level'] + 1; //新层数
|
|
|
- $data['intro_uid'] = $rs_intro['id']; //新推荐人id
|
|
|
- $db->where(['id' => $uid])->update($data);
|
|
|
-
|
|
|
- //更新此会员的下级会员
|
|
|
- $num_c = $rs_intro['intro_level'] - $rs_user['intro_level'] + 1;//变化的层数差
|
|
|
- $user_sub = $db->where("find_in_set('".$rs_user['id']."',intro_ids) > 0")->order("intro_level asc")->select(); //所有下级
|
|
|
- foreach($user_sub as $users) { //每个下级(因为是升序查询,所以每个的上级一定先更新完毕)
|
|
|
- $data_sub = array();
|
|
|
- $rs_tjr = $db->where(array('id' => $users['intro_uid']))->field('id,intro_ids')->find();
|
|
|
- $data_sub['intro_level'] = $users['intro_level'] + $num_c; //新层数
|
|
|
- $data_sub['intro_ids'] = $rs_tjr['intro_ids'].','.$rs_tjr['id']; //新推荐人id序列
|
|
|
- $db->where(array('id' => $users['id']))->update($data_sub);//更新移动网体的会员
|
|
|
+ exit;
|
|
|
}
|
|
|
|
|
|
- //更新直推、团队数
|
|
|
- $team = count($user_sub) + 1;
|
|
|
- if($rs_user['intro_uid']) {
|
|
|
- $this->addIntroNum($rs_user['intro_uid'], -1, -$team); //有则 更新原上级
|
|
|
- }
|
|
|
- $this->addIntroNum($intro_uid, 1, $team); //更新新上级
|
|
|
+ //记录个日志
|
|
|
+ $log = [
|
|
|
+ 'info' => '用户['.$user['id'].']滑落,其名下直推有['.implode(',',array_column($my_down,'id')).'],都改到其上级['.$user['intro_uid'].']名下',
|
|
|
+ 'createtime' => $nowtime,
|
|
|
+ ];
|
|
|
+ Db::name('intro_log')->insertGetId($log);
|
|
|
|
|
|
|
|
|
- $db->commit();
|
|
|
- $this->success("更新成功");
|
|
|
+ //提交
|
|
|
+ Db::commit();
|
|
|
+ echo '完成更新'.$user['id'];
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 更新邀请码数和推荐团队人数
|
|
|
- * @param string $tjrname 用户id
|
|
|
- * @param integer $num 直推增减人数
|
|
|
- * @param integer $team 团队增减人数
|
|
|
- */
|
|
|
- private function addIntroNum($tjrname, $num, $team)
|
|
|
- {
|
|
|
- //更新直推人数
|
|
|
- if($num < 0) {
|
|
|
- $rs1 = Db::name('user')->where(['id' => $tjrname])->setDec('intro_num', abs($num));
|
|
|
- } else {
|
|
|
- $rs1 = Db::name('user')->where(['id' => $tjrname])->setInc('intro_num', $num);
|
|
|
- }
|
|
|
- if($rs1 === false){
|
|
|
- return false;
|
|
|
- }
|
|
|
- //更新团队
|
|
|
- $rstjr = Db::name('user')->where(['id' => $tjrname])->field('id,intro_ids')->find();
|
|
|
- if($rstjr) {
|
|
|
- $tjstr = $rstjr['intro_ids'] ? ($rstjr['intro_ids'] . ',' . $rstjr['id']) : $rstjr['id'];
|
|
|
- $tjstr = trim($tjstr, ',');
|
|
|
- $arr_intro = explode(',', $tjstr);
|
|
|
-
|
|
|
- if($team < 0) {
|
|
|
- $rs2 = Db::name('user')->where(['id' => ['in', $arr_intro]])->setDec('intro_num_all', abs($team));
|
|
|
- } else {
|
|
|
- $rs2 = Db::name('user')->where(['id' => ['in', $arr_intro]])->setInc('intro_num_all', $team);
|
|
|
- }
|
|
|
|
|
|
- if($rs2 === false){
|
|
|
- return false;
|
|
|
- }
|
|
|
|
|
|
- }
|
|
|
|
|
|
- return true;
|
|
|
- }
|
|
|
|
|
|
//滑落要按11天算
|
|
|
private function hualuo_tendays_ago(){
|
|
@@ -297,14 +221,14 @@ class Plantask extends Controller
|
|
|
}
|
|
|
|
|
|
//获取直推人数
|
|
|
- $intro_number = Db::name('user')->where('intro_uid',$intro_uid)->count();
|
|
|
-// dump($intro_number);
|
|
|
+ $intro_count = Db::name('user')->where('intro_uid',$intro_uid)->count();
|
|
|
+// dump($intro_count);
|
|
|
//获取业绩
|
|
|
$yeji = $this->jiesuan_yeji($intro_uid);
|
|
|
// dump($yeji);
|
|
|
|
|
|
//确定代理商等级,拿对应比例
|
|
|
- $rule = $this->jiesuan_daili_level($intro_number,$yeji);
|
|
|
+ $rule = $this->jiesuan_daili_level($intro_count,$yeji);
|
|
|
if($rule['bili'] == 0){
|
|
|
echo '达不到第一级,结束';
|
|
|
Db::name('unishop_order')->where('id',$order['id'])->update(['jiesuantime'=>time()]);
|