StaffModel.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. /**
  3. * Author: luzheng.liu
  4. * Time: 2020/12/5 19:52
  5. */
  6. namespace app\api\model;
  7. use app\common\until\Until;
  8. class StaffModel extends BaseModel {
  9. const NORMAL = 1;
  10. protected $table = 'staff';
  11. public function getStaffList() {
  12. $joinType = 'left';
  13. if (!empty(Until::$adminId)) {
  14. $joinType = 'INNER';
  15. }
  16. $countModel = $this->alias('s')
  17. ->join('store sto','sto.id = s.store_id')
  18. ->join('group g','g.id = sto.group_id')
  19. ->join('staff_title st','st.id = s.staff_title_id','left')
  20. ->join('group_role gr','g.id = gr.group_id and gr.admin_id = '.Until::$adminId,$joinType);
  21. $selectModel = $this->alias('s')
  22. ->field('s.*,sto.store_name,st.staff_title,sto.group_id,g.group_name')
  23. ->join('store sto','sto.id = s.store_id')
  24. ->join('group g','g.id = sto.group_id')
  25. ->join('group_role gr','g.id = gr.group_id and gr.admin_id = '.Until::$adminId,$joinType)
  26. ->join('staff_title st','st.id = s.staff_title_id','left')
  27. ->order(['s.id' => 'desc']);
  28. return $this->joinModelPageList($countModel, $selectModel);
  29. }
  30. public function getStaffInfo() {
  31. $selectModel = $this->alias('s')
  32. ->field('s.*,sto.store_name,st.staff_title')
  33. ->join('store sto', 'sto.id = s.store_id')
  34. ->join('staff_title st', 'st.id = s.staff_title_id')
  35. ->where($this->getWhere())
  36. ->find();
  37. return Until::modelToArray($selectModel);
  38. }
  39. public function getTurnList() {
  40. $joinType = 'INNER';
  41. $countModel = $this->alias('s')
  42. ->join('store sto','sto.id = s.store_id')
  43. ->join('group g','g.id = sto.group_id')
  44. ->join('staff_title st','st.id = s.staff_title_id','left')
  45. ->join('group_role gr','g.id = gr.group_id and gr.admin_id = '.Until::$adminId,$joinType);
  46. $selectModel = $this->alias('s')
  47. ->field('s.id staffId,s.staff_name,s.server_status,
  48. sto.store_name,st.staff_title,sto.id storeId,sto.group_id,
  49. g.group_name,
  50. ts.today_order_num,ts.yesterday_order_num')
  51. ->join('store sto','sto.id = s.store_id')
  52. ->join('group g','g.id = sto.group_id')
  53. ->join('turn_staff ts','ts.staff_id = s.id','left')
  54. ->join('group_role gr','g.id = gr.group_id and gr.admin_id = '.Until::$adminId,$joinType)
  55. ->join('staff_title st','st.id = s.staff_title_id','left')
  56. ->order(['ts.today_order_num' => 'asc','ts.yesterday_order_num' => 'asc']);
  57. return $this->joinModelPageList($countModel, $selectModel);
  58. }
  59. public function getTurnInfo() {
  60. $joinType = 'INNER';
  61. $selectModel = $this->alias('s')
  62. ->field('s.id staffId,s.staff_name,s.server_status,
  63. sto.store_name,st.staff_title,sto.id storeId,sto.group_id,
  64. g.group_name,
  65. ts.today_order_num,ts.yesterday_order_num')
  66. ->join('store sto','sto.id = s.store_id')
  67. ->join('group g','g.id = sto.group_id')
  68. ->join('turn_staff ts','ts.staff_id = s.id','left')
  69. ->join('group_role gr','g.id = gr.group_id and gr.admin_id = '.Until::$adminId,$joinType)
  70. ->join('staff_title st','st.id = s.staff_title_id','left')
  71. ->order(['ts.today_order_num' => 'asc','ts.yesterday_order_num' => 'asc'])
  72. ->where($this->getWhere())
  73. ->find();
  74. return Until::modelToArray($selectModel);
  75. }
  76. }