ProjectService.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace app\common\service;
  3. use app\common\model\Project;
  4. use app\common\service\Service;
  5. use app\common\util\WhereBuilder;
  6. use Carbon\Carbon;
  7. class ProjectService extends Service
  8. {
  9. public function page($param = [])
  10. {
  11. $this->autoParams($param);
  12. $status = $this->array('status');
  13. $keyword = $this->pg('keyword');
  14. $responsibility_person_id = $this->pg('responsibility_person_id');
  15. $begin_date = $this->pg('begin_date');
  16. $end_date = $this->pg('end_date');
  17. $corret_end_date = Carbon::createFromTimeString($end_date)->addDay()->startOfDay()->toDateString();
  18. $where = WhereBuilder::builder()
  19. ->like('p.name|p.source', $keyword)
  20. ->in('p.status', $status)
  21. ->eq('p.responsibility_person_id', $responsibility_person_id)
  22. ->between('p.create_time', $begin_date, $corret_end_date)
  23. ->build();
  24. return (new Project)->alias('p')
  25. ->with(['schedules'])
  26. ->field('p.*')
  27. ->field('a.real_name as responsibility_person')
  28. ->join('admin a', 'a.id = p.responsibility_person_id', 'LEFT')
  29. ->where($where)
  30. ->paginate($this->tp6Page());
  31. }
  32. public function create($param = [])
  33. {
  34. $param = $this->autoParams($param);
  35. return Project::create($param);
  36. }
  37. public function info($param = [])
  38. {
  39. $this->autoParams($param);
  40. $project = $this->one(Project::class);
  41. $project->append(['contracts', 'schedules']);
  42. return $project;
  43. }
  44. public function update($param = [])
  45. {
  46. $param = $this->autoParams($param);
  47. return Project::update($param);
  48. }
  49. public function delete($param = [])
  50. {
  51. $this->autoParams($param);
  52. $project = $this->one(Project::class);
  53. return $project->delete();
  54. }
  55. }