ProjectRole.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace App\Models;
  3. class ProjectRole extends BaseModel
  4. {
  5. /**
  6. * @param $key
  7. * 工区负责人(work)
  8. * 机电负责人(machine)
  9. * 项目副经理(assist)
  10. * 项目经理(manager)
  11. * 管理员子账号(sub)
  12. * 领导账号(leader)
  13. * 管理员(admin)
  14. * @param $column
  15. * @return mixed
  16. */
  17. public static function getByKey($key, $column = null)
  18. {
  19. $role = self::where('key', $key)->first();
  20. if($column) return $role ? $role[$column] : '';
  21. return $role;
  22. }
  23. public function getNext($column = null, $inner = false)
  24. {
  25. $need_check = $inner ? 'need_check_inner' : 'need_check';
  26. $item = $this->where([
  27. [$need_check, '=', 1],
  28. ['id', '>', $this['id']]
  29. ])->first();
  30. if(!$inner && $this['key'] == 'manager') {
  31. $item = self::getByKey('work');
  32. } else if($inner && $this['key'] == 'admin') {
  33. $item = self::getByKey('machine');
  34. }
  35. return $column ? ($item ? $item[$column] : '') : $item;
  36. }
  37. public static function getOptions()
  38. {
  39. return self::where('id', '>', 0)->get()->toArray();
  40. }
  41. public static function getFirstRole(Order $order)
  42. {
  43. return $order['type'] == 1 ? $role = self::getByKey('work') : self::getByKey('machine');
  44. }
  45. public static function getLastRole(Order $order)
  46. {
  47. return $order['type'] == 1 ? $role = self::getByKey('manager') : self::getByKey('admin');
  48. }
  49. }