Cat.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. if($model->pid>0){
  37. $parent = self::findOrEmpty($model->pid);
  38. if($parent->isEmpty()){
  39. $model->level = 1;
  40. $model->search = $parent->cat_name;
  41. }else{
  42. $model->level = $parent->level+1;
  43. $model->search = $parent->search.'_'.$model->cat_name;
  44. }
  45. }
  46. }
  47. /** 获取分类列表
  48. * @param $cat_id
  49. * @param array $catArr
  50. * @return array|mixed
  51. */
  52. public static function GetCatListByChildId($cat_id,&$catArr=[]){
  53. $cat = self::where(['id'=>$cat_id,'is_del'=>0])->field("id,cat_name,pid,status")->findOrEmpty();
  54. if($cat->isEmpty())return [];
  55. array_unshift($catArr,$cat->toArray() );
  56. if($cat->pid>0){
  57. self::GetCatListByChildId($cat->pid,$catArr);
  58. }
  59. return $catArr;
  60. }
  61. /** 获取分类列表
  62. * @param $pid
  63. * @return array
  64. */
  65. public static function GetCatListByPid($pid=0){
  66. $cat = self::field("id,cat_name,pid,status")->where(["pid"=>$pid,"is_del"=>0])->select();
  67. return $cat;
  68. }
  69. }