SystemLevelEquity.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. 'equity_type'=>'recommend_bonus',
  51. 'title'=>'高级合伙人推荐奖{$num}%',
  52. 'real_title'=>'高级合伙人推荐奖',
  53. 'max_number'=>100,
  54. 'min_number'=>0,
  55. ],
  56. [
  57. 'equity_type'=>'code_recommend_bonus',
  58. 'title'=>'推荐总代推荐奖{$num}%',
  59. 'real_title'=>'推荐总代推荐奖',
  60. 'max_number'=>100,
  61. 'min_number'=>0,
  62. ],
  63. [
  64. 'equity_type'=>'senior_stock_right_bonus',
  65. 'title'=>'高级合伙人公司利润分红{$num}%',
  66. 'real_title'=>'高级合伙人公司分红',
  67. 'max_number'=>100,
  68. 'min_number'=>0,
  69. ],
  70. ];
  71. public function profile()
  72. {
  73. return $this->hasOne('SystemUserLevel','level_id','id')->field('name');
  74. }
  75. /**
  76. * 获取所有权益
  77. * @return mixed
  78. */
  79. public static function getEquityTypeAll()
  80. {
  81. return self::$EquityType;
  82. }
  83. /**
  84. * 获取某个任务
  85. * @param $type
  86. * @return mixed
  87. */
  88. public static function getEquityType($type)
  89. {
  90. foreach (self::$EquityType as $item){
  91. if($item['equity_type']==$type) return $item;
  92. }
  93. }
  94. /**
  95. * 设置权益名
  96. * @param $type
  97. * @param $num
  98. * @return mixed
  99. */
  100. public static function setEquityName($type,$num)
  101. {
  102. $systemType=self::getEquityType($type);
  103. return str_replace('{$num}',$num.$systemType['unit'],$systemType['name']);
  104. }
  105. /**
  106. * 获取等级会员权益列表
  107. * @param $level_id
  108. * @param $page
  109. * @param $limit
  110. * @return array
  111. */
  112. public static function getEquityList($level_id,$page,$limit)
  113. {
  114. $data=self::where('levelid',$level_id)->order('sort desc,addtime desc')->page($page,$limit)->select();
  115. $data=count($data) ? $data->toArray() : [];
  116. foreach ($data as &$item){
  117. $item['level_name']=SystemUserLevel::where('id',$item['levelid'])->value('name');
  118. $item['o_level_name']=SystemUserLevel::where('id',$item['target_levelid'])->value('name');
  119. }
  120. $count=self::where('levelid',$level_id)->count();
  121. return compact('data','count');
  122. }
  123. }