SystemLevelEquity.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace app\admin\model\system;
  3. use crmeb\basic\BaseModel;
  4. use crmeb\traits\ModelTrait;
  5. class SystemLevelEquity extends BaseModel
  6. {
  7. use ModelTrait;
  8. /**
  9. * 数据表主键
  10. * @var string
  11. */
  12. protected $pk = 'id';
  13. /**
  14. * 模型名称
  15. * @var string
  16. */
  17. protected $name = 'system_level_equity';
  18. /**
  19. * 权益类型
  20. * type 记录在数据库中用来区分任务
  21. * name 任务名 (任务名中的{$num}会自动替换成设置的数字 + 单位)
  22. * max_number 最大设定数值 0为不限定
  23. * min_number 最小设定数值
  24. * unit 单位
  25. * @var array
  26. */
  27. protected static $EquityType=[
  28. [
  29. 'equity_type'=>'code_stock_right_bonus',
  30. 'title'=>'全民分红利润{$num}%',
  31. 'real_title'=>'全民分红',
  32. 'max_number'=>100,
  33. 'min_number'=>0,
  34. ],
  35. [
  36. 'equity_type'=>'give_stock_right_bonus',
  37. 'title'=>'赠送全民分红利润{$num}%',
  38. 'real_title'=>'赠送全民分红',
  39. 'max_number'=>100,
  40. 'min_number'=>0,
  41. ],
  42. [
  43. 'equity_type'=>'all_stock_right_bonus',
  44. 'title'=>'公司利润分红{$num}%',
  45. 'real_title'=>'公司利润分红',
  46. 'max_number'=>100,
  47. 'min_number'=>0,
  48. ],
  49. ];
  50. public function profile()
  51. {
  52. return $this->hasOne('SystemUserLevel','level_id','id')->field('name');
  53. }
  54. /**
  55. * 获取所有权益
  56. * @return mixed
  57. */
  58. public static function getEquityTypeAll()
  59. {
  60. return self::$EquityType;
  61. }
  62. /**
  63. * 获取某个任务
  64. * @param $type
  65. * @return mixed
  66. */
  67. public static function getEquityType($type)
  68. {
  69. foreach (self::$EquityType as $item){
  70. if($item['equity_type']==$type) return $item;
  71. }
  72. }
  73. /**
  74. * 设置权益名
  75. * @param $type
  76. * @param $num
  77. * @return mixed
  78. */
  79. public static function setEquityName($type,$num)
  80. {
  81. $systemType=self::getEquityType($type);
  82. return str_replace('{$num}',$num.$systemType['unit'],$systemType['name']);
  83. }
  84. /**
  85. * 获取等级会员权益列表
  86. * @param $level_id
  87. * @param $page
  88. * @param $limit
  89. * @return array
  90. */
  91. public static function getEquityList($level_id,$page,$limit)
  92. {
  93. $data=self::where('levelid',$level_id)->order('sort desc,addtime desc')->page($page,$limit)->select();
  94. $data=count($data) ? $data->toArray() : [];
  95. foreach ($data as &$item){
  96. $item['level_name']=SystemUserLevel::where('id',$item['levelid'])->value('name');
  97. $item['o_level_name']=SystemUserLevel::where('id',$item['target_levelid'])->value('name');
  98. }
  99. $count=self::where('levelid',$level_id)->count();
  100. return compact('data','count');
  101. }
  102. }