CpListController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. /**
  3. * ${CARET}
  4. * @file:CpListController.php
  5. * @Created by gnitif
  6. * @Date: 2023/3/20
  7. * @Time: 16:25
  8. */
  9. namespace Modules\CpManage\Http\Controllers;
  10. use Catch\Base\CatchController as Controller;
  11. use Catch\Exceptions\FailedException;
  12. use Illuminate\Http\Request;
  13. use Modules\CpManage\Http\Requests\CpRequest;
  14. use Modules\CpManage\Models\Cp\CpCollection;
  15. use Modules\CpManage\Models\Cp\Cps;
  16. use Modules\CpManage\Services\CpManage\CpService;
  17. class CpListController extends Controller
  18. {
  19. /**
  20. * @param Cps $model
  21. */
  22. public function __construct(protected readonly Cps $model,protected readonly CpCollection $cpCollectionModel)
  23. {
  24. }
  25. /**
  26. * cp列表
  27. * name: index
  28. * @param CpRequest $request
  29. * @return mixed
  30. * date 2023/03/20 16:26
  31. */
  32. public function index(Request $request)
  33. {
  34. $where =[ ['is_deleted','=',0]];
  35. if (!empty($request->get("cp_name", ''))){
  36. $where[] = ['cp_name','like',"%".$request->get("cp_name", ''). "%"];
  37. }
  38. if (!empty($request->get("cp_company", ''))) {
  39. $where[] = ['cp_company','like',"%".$request->get("cp_company", ''). "%"];
  40. }
  41. return CpService::getCpList($where,$request->get('limit',15));
  42. }
  43. /**
  44. * 添加
  45. * name: store
  46. * @param CpRequest $request
  47. * @return mixed
  48. * date 2023/03/23 13:50
  49. */
  50. public function store(CpRequest $request)
  51. {
  52. $params = $request->all();
  53. return $this->model->storeBy($params);
  54. }
  55. /**
  56. * 获取cp信息
  57. * name: show
  58. * @param $id
  59. * @return mixed
  60. * date 2023/03/23 13:50
  61. */
  62. public function show($id)
  63. {
  64. $cp = $this->model->where('cp_id', $id)->first();
  65. // [$cp['share_per_before'],$cp['share_per_after']] = explode(':',$cp['share_per']);
  66. return $cp;
  67. }
  68. /**
  69. * 编辑
  70. * name: update
  71. * @param $id
  72. * @param CpRequest $request
  73. * @return mixed
  74. * date 2023/03/23 13:51
  75. */
  76. public function update($id, CpRequest $request)
  77. {
  78. $params = $request->all();
  79. // $params['share_per'] = $params['share_per_before'] .":" .$params['share_per_after'];
  80. if(isset($params['cp_name'])){
  81. unset($params['cp_name']);
  82. }
  83. return $this->model->updateBy($id, $params);
  84. }
  85. /**
  86. * 删除
  87. * name: destroy
  88. * @param $id
  89. * date 2023/03/23 13:51
  90. */
  91. public function destroy($id)
  92. {
  93. return $this->model->deleteBy($id);
  94. }
  95. /**
  96. * 获取cp现在选
  97. * name: selectOptions
  98. * @param Request $request
  99. * @return mixed
  100. * date 2023/03/23 13:51
  101. */
  102. public function selectOptions(Request $request)
  103. {
  104. $cpName = $request->input('cp_name','');
  105. return CpService::selectOptions($cpName);
  106. }
  107. /**
  108. * 采集
  109. * @param Request $request
  110. * @return void
  111. */
  112. public function cpCollection(Request $request){
  113. $cpName = $request->get('cp_name');
  114. $cpId = $request->get('cp_id');
  115. if(empty($cpName) || empty($cpId) ){
  116. throw new FailedException('缺少参数');
  117. }
  118. $status = $this->cpCollectionModel->where('cp_id',$cpId)->whereIn('spider_status',[0,1])->count();
  119. if($status >0){
  120. throw new FailedException('正在采集中');
  121. }
  122. $this->cpCollectionModel->create(['cp_id'=>$cpId,'cp_name'=>$cpName,'spider_status'=>0,'spider_result'=>'']);
  123. return [];
  124. }
  125. }