初始化项目:添加后端代码、ThinkPHP框架、前端资源
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\model\app\agent;
|
||||
|
||||
use think\Model;
|
||||
use think\Db;
|
||||
|
||||
/**
|
||||
* 分销等级
|
||||
*/
|
||||
class Level extends Model
|
||||
{
|
||||
|
||||
/**
|
||||
* 获取用户当前等级
|
||||
* @param $userId
|
||||
* @return void
|
||||
*/
|
||||
public function getUserLevel($userId){
|
||||
$levelList = \app\common\model\app\agent\Level::getLevelList();
|
||||
|
||||
if(empty($levelList)){
|
||||
return false;
|
||||
}
|
||||
|
||||
$memberModel = new \app\common\model\app\agent\Member();
|
||||
|
||||
$member = $memberModel->getMember($userId);
|
||||
|
||||
if(!$member || $member['status'] != 1){
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ($levelList as $item){
|
||||
|
||||
if( isset($item['id']) && $member['level'] == $item['id']){
|
||||
return $item;
|
||||
}
|
||||
}
|
||||
|
||||
return $levelList[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户的下一等级
|
||||
* @param $userId
|
||||
* @return void
|
||||
*/
|
||||
public function getUserNextLevel($userId){
|
||||
$levelList = \app\common\model\app\agent\Level::getLevelList();
|
||||
|
||||
$memberModel = new \app\common\model\app\agent\Member();
|
||||
$member = $memberModel->getMember($userId);
|
||||
|
||||
if(!$member){
|
||||
return false;
|
||||
}
|
||||
|
||||
$levelIndex = 0;
|
||||
//当前的等级下标
|
||||
$nowLevelIndex = 0;
|
||||
|
||||
foreach ($levelList as $item){
|
||||
$data[] = $item;
|
||||
if( isset($item['id']) && $member['level'] == $item['id']){
|
||||
$nowLevelIndex = $levelIndex;
|
||||
}
|
||||
$levelIndex++;
|
||||
}
|
||||
|
||||
if(isset($data[$nowLevelIndex+1])){
|
||||
return $data[$nowLevelIndex+1];
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 检查升级
|
||||
* @param $userId
|
||||
* @return void
|
||||
*/
|
||||
public function handle($userId){
|
||||
|
||||
$nextLevelId = $this->checkLevelCondtion($userId);
|
||||
|
||||
if($nextLevelId !== false){
|
||||
$this->upLevel($userId,$nextLevelId);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否满足升级条件
|
||||
* @param $userId 用户ID
|
||||
* @return false 满足则返回升级等级ID 否则false
|
||||
*/
|
||||
public function checkLevelCondtion($userId)
|
||||
{
|
||||
$config = \app\common\model\app\Config::getConfig('agent');
|
||||
$upLevel = $this->getUserNextLevel($userId);
|
||||
|
||||
if(!$upLevel){
|
||||
return false;
|
||||
}
|
||||
//判断是否满足条件
|
||||
$satisfy = false;
|
||||
foreach ($upLevel['condition'] as $type => $item){
|
||||
if($item['status'] == 1){
|
||||
|
||||
//判断自定条件
|
||||
$temp = \app\api\model\app\agent\Condition::checkCondition($userId,$type,$item['value']);
|
||||
|
||||
if($config['upgrade'] == 2){
|
||||
//满足一个即可
|
||||
if($temp){
|
||||
$satisfy = true;
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
//需要全部满足
|
||||
if(!$temp){
|
||||
$satisfy = false;
|
||||
break;
|
||||
}else{
|
||||
$satisfy = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($satisfy){
|
||||
return $upLevel['id'];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 升级
|
||||
* @param $userId 用户ID
|
||||
* @param $toLevelId 要升级的等级ID
|
||||
* @return void
|
||||
*/
|
||||
public function upLevel($userId,$toLevelId){
|
||||
|
||||
$memberModel = new \app\common\model\app\agent\Member();
|
||||
|
||||
return $memberModel->where([
|
||||
'user_id'=>$userId
|
||||
])->update([
|
||||
'level'=>$toLevelId
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user