TaskService.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace app\extra\service\blue;
  3. use app\extra\basic\Service;
  4. use app\model\blue\BlueTask;
  5. class TaskService extends Service
  6. {
  7. /**
  8. * 列表
  9. * @param array $param
  10. */
  11. public function getList(array $param = [])
  12. {
  13. $this->mode = new BlueTask();
  14. return $this->searchVal($param,$this->searchFilter($param))->append(['progress'])->withAttr(['progress' => function ($data,$resp) {
  15. if ($resp['sign_number'] == 0) return $resp['sign_number'];
  16. return ceil($resp['sign_number']/$resp['need_number'] * 100);
  17. }])->with(['categoryJoin' => function ($query) {
  18. $query->field("sign,name,icon");
  19. }])->paginate([
  20. "list_rows" => $param['pageSize'],
  21. "page" => $param['page']
  22. ]);
  23. }
  24. /**
  25. *
  26. * @param array $param
  27. * @return array
  28. */
  29. public function searchFilter(array $param = []): array
  30. {
  31. $filter = [];
  32. !empty($param['type']) && $filter[] = ["type", '=', $param['type']];
  33. !empty($param['status']) && $filter[] = ["status", '=', $param['status']];
  34. !empty($param['name']) && $filter[] = ["name", 'like', "%{$param['name']}%"];
  35. return $filter;
  36. }
  37. }