DispatchClassify.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2018/12/20
  6. * Time: 16:51
  7. */
  8. namespace app\backend\modules\discount\models;
  9. use app\backend\modules\goods\models\Category;
  10. use app\common\models\BaseModel;
  11. class DispatchClassify extends BaseModel
  12. {
  13. public $table = 'yz_dispatch_classify';
  14. public $guarded = [''];
  15. public $casts = [
  16. 'discount_value' => 'json'
  17. ];
  18. public static function classify($id)
  19. {
  20. $record=self::find($id);
  21. $second = [];
  22. $third = [];
  23. $first = [];
  24. if($record){
  25. $ids=explode(',',$record['dispatch_id']);
  26. $cate = (new Category())->getAllCategorys()->get()->toArray();
  27. foreach($ids as $v){
  28. $key=array_search($v,array_column($cate,'id'));
  29. if($key!==false){
  30. switch($cate[$key]['level']){
  31. case 2:
  32. $second[]=$cate[$key];
  33. break;
  34. case 3:
  35. $third[]=$cate[$key]['id'];
  36. break;
  37. }
  38. }
  39. }
  40. foreach($second as $sec){
  41. $key=array_search($sec['parent_id'],array_column($cate,'id'));
  42. if($key!==false){
  43. $first[]=$cate[$key]['id'];
  44. }
  45. }
  46. }
  47. return [array_values(array_unique($first)),array_column($second,'id'),$third];
  48. }
  49. }