Cate.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wugg
  5. * Date: 2024/6/28
  6. * Time: 16:03
  7. * description:分类控制器
  8. */
  9. namespace app\admin\controller;
  10. use app\admin\model\CatSpecs;use think\App;use think\facade\Validate;
  11. class Cate extends Base{
  12. public function __construct(App $app) {
  13. parent::__construct($app);
  14. $this->model = new \app\admin\model\Cat();
  15. }
  16. /**
  17. * @param pid=0,cat_name="",status="",page=1,size=10
  18. * 获取分类列表
  19. */
  20. public function list(){
  21. $param=$this->request->param(["pid"=>0,"cat_name"=>"","status"=>"","page"=>1,"size"=>10],"post","trim");
  22. $where=[["is_del","=",0]];
  23. if($param["pid"]!=="")$where[]=["pid","=",$param["pid"]];
  24. if($param["cat_name"]!=="")$where[]=["cat_name","like","%".$param["cat_name"]."%"];
  25. if($param["status"]!=="")$where[]=["status","=",$param["status"]];
  26. $data=$this->model->where($where)->order("id","desc")->paginate(['page'=>$param['page'],'list_rows'=>$param['size']])
  27. ->each(function($item){
  28. return $item["im"]=CatSpecs::with(["specs"])->where("cat_id",$item["id"])->field(["specs_id"])->select();
  29. });
  30. return success("获取成功",$data);
  31. }
  32. public function create(){
  33. $param=$this->request->param(['cat_name', 'pid', 'cat_desc' => '', 'fund_code' => '', 'specs_id'=>[], 'weight'
  34. => 0, 'status' => 0],"post","trim");
  35. $valid=Validate::rule([
  36. "cat_name|分类名称"=>"require|max:255|unique:app\admin\model\Cat,cat_name^is_del",
  37. "pid|父级分类"=>"require|integer|egt:0",
  38. "cat_desc|分类描述"=>"max:255",
  39. "fund_code|财务代码"=>"max:255",
  40. "specs_id|规格id"=>"require|array",
  41. "weight|权重"=>"int",
  42. "status|状态"=>"int|in:0,1",
  43. ]);
  44. if(!$valid->check($param))return error($valid->getError());
  45. $parent = $this->model->where("id",$param["pid"])->findOrEmpty();
  46. if($parent->isEmpty())return error("父级分类不存在");
  47. $this->model->startTrans();
  48. try{
  49. $create=[
  50. "cat_name"=>$param['cat_name'],
  51. "pid"=>$param["pid"],
  52. "cat_desc"=>$param["cat_desc"],
  53. "fund_code"=>$param["fund_code"],
  54. "weight"=>$param["weight"],
  55. "status"=>$param["status"],
  56. 'creater' => $this->uname,
  57. 'createrid' =>$this->uid,
  58. ];
  59. $data=$this->model->create($create);
  60. if($data->isEmpty())return error("添加失败");
  61. $spec=$data->specs()->saveAll($param["specs_id"]);
  62. if($spec->isEmpty())return error("添加失败");
  63. $this->model->commit();
  64. }catch (\Exception $e){
  65. $this->model->rollback();
  66. return error($e->getMessage());
  67. }
  68. return success("添加成功");
  69. }
  70. }