MasterWorkerRetentionMoneyLogLists.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * @author 林海涛
  4. * @date 2024/7/28 上午11:30
  5. */
  6. namespace app\workerapi\lists;
  7. use app\common\model\master_worker\MasterWorkerRetentionMoneyLog;
  8. class MasterWorkerRetentionMoneyLogLists extends BaseWorkerDataLists
  9. {
  10. public function queryWhere()
  11. {
  12. $where = [];
  13. if(isset($this->params['action_freeze']) && !empty($this->params['action_freeze'])){
  14. switch ($this->params['action_freeze']){
  15. case 1:
  16. $where[] = ['action','=',1];
  17. $where[] = ['to_freeze','=',0];
  18. break;
  19. case 2:
  20. $where[] = ['action','=',2];
  21. $where[] = ['to_freeze','=',0];
  22. break;
  23. case 3:
  24. $where[] = ['to_freeze','=',1];
  25. break;
  26. case 4:
  27. $where[] = ['to_freeze','=',2];
  28. break;
  29. default:
  30. break;
  31. }
  32. }
  33. if(isset($this->params['worker_id'])){
  34. $where[]= ['worker_id','=',$this->params['worker_id']];
  35. } else{
  36. $where[]= ['worker_id','=',$this->userId];
  37. }
  38. if(isset($this->params['create_time']) && !empty($this->params['create_time'])){
  39. $time = [strtotime($this->params['create_time'][0]), strtotime($this->params['create_time'][1])];
  40. $where[] = ['create_time', 'between', $time];
  41. }
  42. if(isset($this->params['month']) && !empty($this->params['month'])){
  43. $firstDay =date("Y-m-d 00:00:00", strtotime("first day of {$this->params['month']}"));
  44. $lastDay = date("Y-m-d 23:59:59", strtotime("{$this->params['month']} +1 month -1 day"));
  45. $firstTime = strtotime($firstDay);
  46. $lastTime = strtotime($lastDay);
  47. $where[] = ['create_time','between',[$firstTime,$lastTime]];
  48. }
  49. return $where;
  50. }
  51. public function lists(): array
  52. {
  53. $lists = MasterWorkerRetentionMoneyLog::where($this->searchWhere)
  54. ->where($this->queryWhere())
  55. ->append(['action_text'])
  56. ->field(['*'])
  57. ->order(['id' => 'desc'])
  58. ->select()
  59. ->toArray();
  60. foreach ($lists as &$item) {
  61. $item['amount'] = $item['action_text'] . $item['amount'];
  62. $item['action_name'] = empty($item['to_freeze'])?($item['action']==1?'缴纳质保金':'扣除质保金'):($item['to_freeze']==1?'冻结质保金':'解冻质保金');
  63. }
  64. return $lists;
  65. }
  66. public function count(): int
  67. {
  68. return MasterWorkerRetentionMoneyLog::where($this->queryWhere())->count();
  69. }
  70. }