MasterWorkerCommissionNoticeLists.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | likeadmin快速开发前后端分离管理后台(PHP版)
  4. // +----------------------------------------------------------------------
  5. // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
  6. // | 开源版本可自由商用,可去除界面版权logo
  7. // | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
  8. // | github下载:https://github.com/likeshop-github/likeadmin
  9. // | 访问官网:https://www.likeadmin.cn
  10. // | likeadmin团队 版权所有 拥有最终解释权
  11. // +----------------------------------------------------------------------
  12. // | author: likeadminTeam
  13. // +----------------------------------------------------------------------
  14. namespace app\adminapi\lists\master_commission;
  15. use app\adminapi\lists\BaseAdminDataLists;
  16. use app\common\model\master_commission\MasterWorkerCommissionNotice;
  17. use app\common\lists\ListsSearchInterface;
  18. use think\facade\Db;
  19. /**
  20. * MasterWorkerCommissionNotice列表
  21. * Class MasterWorkerCommissionNoticeLists
  22. * @package app\adminapi\lists
  23. */
  24. class MasterWorkerCommissionNoticeLists extends BaseAdminDataLists implements ListsSearchInterface
  25. {
  26. /**
  27. * @notes 设置搜索条件
  28. * @return \string[][]
  29. * @author likeadmin
  30. * @date 2024/12/16 17:37
  31. */
  32. public function setSearch(): array
  33. {
  34. return [
  35. '=' => ['commission_config_id', 'master_worker_id', 'day_num', 'order_num', 'signing_date', 'signing_date_end'],
  36. 'like' => ['worker_number%', 'real_name%', 'mobile%'],
  37. ];
  38. }
  39. /**
  40. * @notes 获取列表
  41. * @return array
  42. * @throws \think\db\exception\DataNotFoundException
  43. * @throws \think\db\exception\DbException
  44. * @throws \think\db\exception\ModelNotFoundException
  45. * @author likeadmin
  46. * @date 2024/12/16 17:37
  47. */
  48. public function lists(): array
  49. {
  50. return Db::name('master_worker_commission_notice')->alias('n')
  51. ->leftJoin('service_work sw', 'n.master_worker_id = sw.master_worker_id AND sw.create_time >= n.signing_date AND sw.create_time <= n.signing_date_end')
  52. ->leftJoin('master_worker mw', 'n.master_worker_id = mw.id')
  53. ->field([
  54. 'n.id', 'n.commission_config_id', 'n.master_worker_id', 'n.day_num', 'n.order_num', 'n.signing_date', 'n.signing_date_end',
  55. 'mw.real_name', 'mw.nickname', 'mw.worker_number', 'mw.mobile',
  56. Db::raw("COUNT(sw.id) AS order_count"),
  57. Db::raw("MAX(sw.finished_time) max_time")
  58. ])
  59. ->where($this->searchWhere)
  60. ->group('n.master_worker_id, n.id')
  61. ->limit($this->limitOffset, $this->limitLength)
  62. ->select()->toArray();
  63. }
  64. /**
  65. * @notes 获取数量
  66. * @return int
  67. * @author likeadmin
  68. * @date 2024/12/16 17:37
  69. */
  70. public function count(): int
  71. {
  72. return Db::name('master_worker_commission_notice')->alias('n')
  73. ->with('masterWorker')
  74. ->leftJoin('service_work sw', 'n.master_worker_id = sw.master_worker_id AND sw.create_time >= n.signing_date AND sw.create_time <= n.signing_date_end')
  75. ->field([
  76. 'n.id', 'n.commission_config_id', 'n.master_worker_id', 'n.day_num', 'n.order_num', 'n.signing_date', 'n.signing_date_end',
  77. Db::raw("COUNT(sw.id) AS order_count"),
  78. Db::raw("MAX(sw.finished_time) max_time")
  79. ])
  80. ->where($this->searchWhere)
  81. ->group('n.master_worker_id, n.id')
  82. ->count();
  83. }
  84. }