<?php namespace app\admin\model\system; use crmeb\basic\BaseModel; use crmeb\traits\ModelTrait; class SystemLevelEquity extends BaseModel { use ModelTrait; /** * 数据表主键 * @var string */ protected $pk = 'id'; /** * 模型名称 * @var string */ protected $name = 'system_level_equity'; /** * 权益类型 * type 记录在数据库中用来区分任务 * name 任务名 (任务名中的{$num}会自动替换成设置的数字 + 单位) * max_number 最大设定数值 0为不限定 * min_number 最小设定数值 * unit 单位 * @var array */ protected static $EquityType=[ [ 'equity_type'=>'code_stock_right_bonus', 'title'=>'全民分红利润{$num}%', 'real_title'=>'全民分红', 'max_number'=>100, 'min_number'=>0, ], [ 'equity_type'=>'give_stock_right_bonus', 'title'=>'赠送全民分红利润{$num}%', 'real_title'=>'赠送全民分红', 'max_number'=>100, 'min_number'=>0, ], [ 'equity_type'=>'all_stock_right_bonus', 'title'=>'公司利润分红{$num}%', 'real_title'=>'公司利润分红', 'max_number'=>100, 'min_number'=>0, ], ]; public function profile() { return $this->hasOne('SystemUserLevel','level_id','id')->field('name'); } /** * 获取所有权益 * @return mixed */ public static function getEquityTypeAll() { return self::$EquityType; } /** * 获取某个任务 * @param $type * @return mixed */ public static function getEquityType($type) { foreach (self::$EquityType as $item){ if($item['equity_type']==$type) return $item; } } /** * 设置权益名 * @param $type * @param $num * @return mixed */ public static function setEquityName($type,$num) { $systemType=self::getEquityType($type); return str_replace('{$num}',$num.$systemType['unit'],$systemType['name']); } /** * 获取等级会员权益列表 * @param $level_id * @param $page * @param $limit * @return array */ public static function getEquityList($level_id,$page,$limit) { $data=self::where('levelid',$level_id)->order('sort desc,addtime desc')->page($page,$limit)->select(); $data=count($data) ? $data->toArray() : []; foreach ($data as &$item){ $item['level_name']=SystemUserLevel::where('id',$item['levelid'])->value('name'); $item['o_level_name']=SystemUserLevel::where('id',$item['target_levelid'])->value('name'); } $count=self::where('levelid',$level_id)->count(); return compact('data','count'); } }