| 123456789101112131415161718192021222324252627282930313233343536373839 |
- <?php
- namespace App\Services;
- use App\Owner;
- use App\Traits\ServiceAppAop;
- use App\MaterialBoxModel;
- use Illuminate\Database\Eloquent\Collection;
- use Illuminate\Support\Facades\DB;
- class MaterialBoxModelService
- {
- use ServiceAppAop;
- protected $modelClass=MaterialBoxModel::class;
- /**
- * 获取货主的模型序列
- *
- * @param int|null $owner
- *
- * @return Collection
- */
- public function getModelSortedByOwner(?int $owner):Collection
- {
- $sequence = [];
- $sql = "(CASE id ";
- if (!$owner){
- $owner = Owner::query()->find($owner);
- if ($owner){
- $sequence = explode(",",$owner->model_sequence);
- foreach ($sequence as $index=>$s)$sql .= " WHEN {$s} THEN {$index}";
- $sql .= " END)";
- }
- }
- $query = MaterialBoxModel::query();
- if ($sequence)$query->whereIn("id",$sequence)->orderBy(DB::raw($sql));
- return $query->get();
- }
- }
|