Cat.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace app\admin\model;
  3. use think\Model;
  4. class Cat extends Base
  5. {
  6. //设置字段信息
  7. protected $schema = [
  8. 'id' =>'int',//
  9. 'cat_name' =>'varchar',//分类名称
  10. 'pid' =>'int',//父级id
  11. 'level' =>'int',//级别
  12. // 'rate' =>'varchar',//主管利率
  13. // 'order_rate' =>'varchar',//预算成本
  14. // 'money_rate' =>'varchar',//财务利率
  15. // 'low_rate' =>'varchar',//最低利率
  16. // 'sale_rate' =>'varchar',//成本售价(标准)
  17. // 'lower_rate' =>'varchar',//BOSS利率
  18. 'creater' =>'varchar',//创建人
  19. 'createrid' =>'bigint',//创建人id
  20. 'cat_desc' =>'text',//分类描述(售后)
  21. 'fund_code' =>'varchar',//财务核算码
  22. 'weight' =>'int',//权重排序
  23. 'search' =>'varchar',//搜索关键字
  24. 'status' =>'int',//使用状态
  25. 'is_del' =>'tinyint',//
  26. 'addtime' =>'datetime',//
  27. 'updatetime' =>'datetime',//
  28. ];
  29. protected $createTime='addtime';
  30. protected $updateTime='updatetime';
  31. protected $disuse=["rate",'order_rate','money_rate','low_rate','sale_rate','lower_rate'];
  32. public function specs(){
  33. return $this->hasMany(CatSpecs::class,'cat_id','id');
  34. }
  35. public static function onBeforeWrite(Model $model) : void{
  36. $model->level = 1;
  37. $model->search = $model->cat_name;
  38. if($model->pid>0){
  39. $parent = self::findOrEmpty($model->pid);
  40. if($parent->isEmpty()==false){
  41. $model->level = $parent->level+1;
  42. $model->search = $parent->search.'_'.$model->cat_name;
  43. }
  44. }
  45. }
  46. /** 获取分类列表
  47. * @param $cat_id
  48. * @param array $catArr
  49. * @return array|mixed
  50. */
  51. public static function GetCatListByChildId($cat_id,&$catArr=[]){
  52. $cat = self::where(['id'=>$cat_id,'is_del'=>0])->field("id,cat_name,pid,status")->findOrEmpty();
  53. if($cat->isEmpty())return [];
  54. array_unshift($catArr,$cat->toArray() );
  55. if($cat->pid>0){
  56. self::GetCatListByChildId($cat->pid,$catArr);
  57. }
  58. return $catArr;
  59. }
  60. /** 获取分类列表
  61. * @param $pid
  62. * @return array
  63. */
  64. public static function GetCatListByPid($pid=0){
  65. $cat = self::field("id,cat_name,pid,status")->where(["pid"=>$pid,"is_del"=>0])->select();
  66. return $cat;
  67. }
  68. }