终极提交~

This commit is contained in:
2019-10-27 20:15:29 +08:00
parent df11660e6a
commit 4131f1ac50
17 changed files with 588 additions and 118 deletions

View File

@ -1,6 +1,8 @@
<?php
namespace wstmart\common\model;
use think\Db;
/**
*
*/
@ -21,6 +23,56 @@ class UserTrees extends Base
return $this->where($where)->field($field)->find();
}
public static function getUpperId($userId){
$data = self::where(["uid"=>$userId])->find();
return (null == $data)?$data:$data->pid;
}
public static function realGetMyChildren($myUserId, $users, $level = 1, &$data = []){
$inUser = implode("','",$users);
$_childes = self::where("pid in('$inUser')")->select();
$nextUsers = [];
foreach ($_childes as $_child){$nextUsers[] = $_child["uid"];}
$data[$level-1]["count"]=sizeof($_childes);
$data[$level-1]["total"]=self::realGetUsersHelpSaleNum($myUserId, $level);
if($level <= 10){$data[$level-1]["level"]=self::$level[$level];}
else{$data[$level-1]["level"]="".$level."";}
$data[$level-1]["level_no"]=$level;
return $level < (int)dataConf("helpSaleMaxLevel") ? self::realGetMyChildren($myUserId, $nextUsers, ++$level, $data) : $data;
}
public static function checkUserCanDisplay($userId){
if($userId == 1)return true;
$data = Db::name("user_vouchers_summary")->where(compact('userId'))->find();
if($data===null){$userHelpGet=0;}
else{$userHelpGet = (float)$data['helpSaleNum'];}
return ($userHelpGet >= 0);
}
public static function realGetUsersHelpSaleNum($fromUsers, $level){
$count = DB::table("hyh_orders")->where("userId='$fromUsers' and helpUserLevel='$level' and orderStatus=2")->sum("helpGetCount");
$count -= DB::table("hyh_orders")->where("helpUserId='$fromUsers' and helpUserLevel='$level' and orderStatus=2")->sum("helpGetCount2");
return round($count, 2);
}
public static function realGetLevelsDownBetween($fromUser, $toUser, $level=0){
if($level === 0 && $fromUser == $toUser)return 0;
if(!is_array($fromUser))$fromUser=[$fromUser];
if(sizeof($fromUser)==0)return 0;
if(is_array($toUser))$toUser=$toUser[0];
$inUser = implode("','",$fromUser);
$_childes = self::where("pid in('$inUser')")->select();
$nextUsers = [];
foreach ($_childes as $_child){$nextUsers[] = $_child["uid"];}
return in_array($toUser, $nextUsers) ? ++$level : self::realGetLevelsDownBetween($nextUsers, $toUser, ++$level);
}
public static function realGetLevelsBetween($fromUser, $toUser, $level=0){
if($level === 0 && $fromUser == $toUser)return 0;
$parent = self::where("uid = '$fromUser'")->find();
$nextUsers = $parent->value("pid");
return $nextUsers != null ? ($nextUsers == $toUser ? ++$level : self::realGetLevelsBetween($nextUsers, $toUser, ++$level)) : $level;
}
/**
* getMyLevel
* @RequestMapping("getMyLevel")
@ -49,7 +101,7 @@ class UserTrees extends Base
$levelArr[$level]['total'] = 0;
$level++;
if ($level <= 10) {
if ($level <= (int)dataConf("helpSaleMaxLevel")) {
return self::getMyLevel(implode(',', $ids), $level, $levelArr);
} else {
return self::getMyProductNum($levelArr);
@ -79,8 +131,14 @@ class UserTrees extends Base
if(!$ids){
$ids = 0;
}
$levelArr[$key]['total'] += \wstmart\app\model\Users::where("userId in($ids)")->sum("productNum");
$levelArr[$key]['level'] = self::$level[$key];
// Fix Injection
$levelArr[$key]['total'] = DB::table("hyh_user_vouchers_summary")->where("userId in('$ids')")->sum("helpSaleNum");
if($key>10){
$levelArr[$key]['level'] = "".$key."";
}else{
$levelArr[$key]['level'] = self::$level[$key];
}
$levelArr[$key]['level_id'] = $key;
}
return $levelArr;
}