MasterWorkerServiceOrderLists.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace app\adminapi\lists\master_worker;
  3. use app\adminapi\lists\BaseAdminDataLists;
  4. use app\common\lists\ListsSearchInterface;
  5. use think\facade\Db;
  6. /**
  7. * MasterWorkerServiceOrder列表
  8. * Class MasterWorkerServiceOrderLists
  9. * @package app\adminapi\lists
  10. */
  11. class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsSearchInterface
  12. {
  13. /**
  14. * @notes 设置搜索条件
  15. * @return \string[][]
  16. * @author likeadmin
  17. * @date 2024/11/15 17:21
  18. */
  19. public function setSearch(): array
  20. {
  21. return [];
  22. }
  23. /**
  24. * @notes 获取列表
  25. * @return array
  26. * @throws \think\db\exception\DataNotFoundException
  27. * @throws \think\db\exception\DbException
  28. * @throws \think\db\exception\ModelNotFoundException
  29. * @author likeadmin
  30. * @date 2024/11/15 17:21
  31. */
  32. public function lists(): array
  33. {
  34. return Db::name('master_worker')->alias('a')->field([
  35. 'a.id','a.real_name','a.nickname','a.worker_number','a.recruiting_behalf',
  36. Db::raw("SUM(CASE WHEN b.service_status = 3 THEN 1 ELSE 0 END) AS success_count"),
  37. Db::raw("SUM(CASE WHEN b.service_status = 4 OR b.service_status = 5 THEN 1 ELSE 0 END) AS fail_count"),
  38. Db::raw("SUM(b.work_total) work_total"),
  39. ])
  40. ->leftJoin('service_work b', 'a.id = b.master_worker_id')
  41. //->where('a.left_amount', '>', 0)
  42. ->group('a.id')
  43. ->select()->toArray();
  44. }
  45. /**
  46. * @notes 获取数量
  47. * @return int
  48. * @author likeadmin
  49. * @date 2024/11/15 17:21
  50. */
  51. public function count(): int
  52. {
  53. return Db::name('master_worker')->alias('a')->field([
  54. 'a.id','a.real_name','a.nickname','a.worker_number','a.recruiting_behalf',
  55. Db::raw("SUM(CASE WHEN b.service_status = 3 THEN 1 ELSE 0 END) AS success_count"),
  56. Db::raw("SUM(CASE WHEN b.service_status = 4 OR b.service_status = 5 THEN 1 ELSE 0 END) AS fail_count"),
  57. Db::raw("SUM(b.work_total) work_total"),
  58. ])
  59. ->leftJoin('service_work b', 'a.id = b.master_worker_id')
  60. //->where('a.left_amount', '>', 0)
  61. ->group('a.id')
  62. ->count();
  63. }
  64. }