BlueTaskUserService.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace app\extra\service\blue;
  3. use app\extra\basic\Service;
  4. use app\model\blue\BlueTaskUser;
  5. class BlueTaskUserService extends Service
  6. {
  7. public function getHomeList(array $param = [])
  8. {
  9. $this->mode = new BlueTaskUser();
  10. return $this->searchVal($param,$this->searchFilter($param))->with(['task' => function ($query) {
  11. $query->field("id,title,task_sn,product_cover_url,total_budget,sign_number,need_number,category,level,sys_level,product_price")->append(['progress','total_budget_format'])->withAttr(['progress' => function ($data,$resp) {
  12. if ($resp['sign_number'] == 0) return $resp['sign_number'];
  13. return ceil($resp['sign_number']/$resp['need_number'] * 100);
  14. },'total_budget_format' => function($data,$resp) {
  15. return formatMoneyKw($resp['total_budget']/100);
  16. }]);
  17. }])->paginate([
  18. "list_rows" => $param['pageSize'],
  19. "page" => $param['page']
  20. ]);
  21. }
  22. /**
  23. *
  24. * @param array $param
  25. * @return array
  26. */
  27. public function searchFilter(array $param = []): array
  28. {
  29. $filter = [];
  30. !empty($param['id']) && $filter[] = ["id", '=', $param['id']];
  31. !empty($param['openid']) && $filter[] = ["openid", '=', $param['openid']];
  32. !empty($param['task_sn']) && $filter[] = ["task_sn", '=', $param['task_sn']];
  33. !empty($param['type']) && $filter[] = ["type", '=', $param['type']];
  34. !empty($param['category']) && $filter[] = ["category", '=', $param['category']];
  35. !empty($param['status']) && $filter[] = ["status", '=', $param['status']];
  36. !empty($param['name']) && $filter[] = ["name", 'like', "%{$param['name']}%"];
  37. return $filter;
  38. }
  39. }