cxgj/models/Level.php
2023-11-27 09:45:13 +08:00

153 lines
4.8 KiB
PHP

<?php
namespace app\models;
use app\components\SiteHelper;
use Yii;
/**
* This is the model class for table "{{%level}}".
*
* @property int $id
* @property int $level 等级
* @property string $name 等级名称
* @property string $cover 封面图
* @property string $cover_min 封面图
* @property string $pic 封面图
* @property string $font_color 封面图
* @property float $recharge_number 充值多少升级
* @property float $discount 折扣
* @property int $status 是否启用0未启用1启用
* @property int|null $created_at
* @property int|null $updated_at
*/
class Level extends \yii\db\ActiveRecord
{
#大图#
const MAX_V1 = '/statics/images/level/max_v1.png';
const MAX_V2 = '/statics/images/level/max_v2.png';
const MAX_V3 = '/statics/images/level/max_v3.png';
#小图#
const MIN_V1 = '/statics/images/level/min_v1.png';
const MIN_V2 = '/statics/images/level/min_v2.png';
const MIN_V3 = '/statics/images/level/min_v3.png';
#折扣权限#
#锁#
const LOCK_V1 = '/statics/images/level/lock_v1.png';
const LOCK_V2 = '/statics/images/level/lock_v2.png';
const LOCK_V3 = '/statics/images/level/lock_v3.png';
#见习会员#
const PIC_V1 = '/statics/images/level/pic_v1.png';
#进阶会员#
const PIC_V2_1 = '/statics/images/level/pic_v2_1.png';
const PIC_V2_2 = '/statics/images/level/pic_v2_2.png';
#见习会员#
const PIC_V3_1 = '/statics/images/level/pic_v3_1.png';
const PIC_V3_2 = '/statics/images/level/pic_v3_2.png';
const PIC_V3_3 = '/statics/images/level/pic_v3_3.png';
const BACKGROUND_V1 = '/statics/images/level/background_v1.png';
const BACKGROUND_V2 = '/statics/images/level/background_v2.png';
const BACKGROUND_V3 = '/statics/images/level/background_v3.png';
/**
* {@inheritdoc}
*/
public static function tableName()
{
return '{{%level}}';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['level', 'name', 'recharge_number', 'discount'], 'required'],
[['level', 'status', 'created_at', 'updated_at', 'discount','recharge_number'], 'integer'],
[['name', 'cover','pic','cover_min'], 'string', 'max' => 255],
[['font_color'], 'string', 'max' => 10],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'level' => '等级',
'name' => '等级名称',
'cover' => '卡片1',
'cover_min' => '卡片2',
'pic' => '图标',
'font_color' => '字体颜色',
'recharge_number' => '充值多少升级',
'discount' => '折扣',
'status' => '是否启用0未启用1启用',
'created_at' => 'Created At',
'updated_at' => 'Updated At',
];
}
public static function getUserLevel($user)
{
$id = $user->level_id;
if(in_array($user->level_id,[0,1,2])){
$id += 1;
}
$level = Level::findOne(['id' => $id]);
if($level == null){
return [];
}
$level_exp = floor($user->level_exp);
$recharge_number = $level->recharge_number;
$percentage = floor(($level_exp/$recharge_number) * 100);
$percentage = $percentage > 100 ? 100 : $percentage;
if($user->level_id == 0 || $user->level_id == 1){
$cover = SiteHelper::getFullUrl(Level::MIN_V1);
$desc = '充值'.$level->recharge_number.'元成为'.$level->name.',解锁更多折扣';
}
if($user->level_id == 2){
$cover = SiteHelper::getFullUrl(Level::MIN_V3);
$desc = '充值'.$level->recharge_number.'元升至'.$level->name.',解锁更多折扣';
}
if($user->level_id == 3){
$cover = SiteHelper::getFullUrl(Level::MIN_V2);
// $desc = '充值'.$level->recharge_number.'元升至'.$level->name.',解锁更多折扣';
$desc = '已到最高等级';
}
$level_exp = $level_exp > $recharge_number ? $recharge_number : $level_exp;
return ['cover' => $cover,'desc' => $desc,'level_exp' => $level_exp,'recharge_number' => $recharge_number,'percentage' => $percentage];
}
//检测升级
public static function checkUpgrade($level_id,$level_exp)
{
$level = Level::find()
->select('id,recharge_number')
->where(['status' => 1])
->andWhere(['>','id',$level_id])
->orderBy(['level' => SORT_DESC])->asArray()->all();
if(empty($level)){
return false;
}
foreach ($level as $index => $item){
if($level_exp >= $item['recharge_number']){
return $item['id'];
}
}
return false;
}
}