1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- /**
- * Created by PhpStorm.
- * User: wugg
- * Date: 2024/6/28
- * Time: 16:03
- * description:分类控制器
- */
- namespace app\admin\controller;
- use app\admin\model\CatSpecs;use think\App;use think\facade\Validate;
- class Cate extends Base{
- public function __construct(App $app) {
- parent::__construct($app);
- $this->model = new \app\admin\model\Cat();
- }
- /**
- * @param pid=0,cat_name="",status="",page=1,size=10
- * 获取分类列表
- */
- public function list(){
- $param=$this->request->param(["pid"=>0,"cat_name"=>"","status"=>"","page"=>1,"size"=>10],"post","trim");
- $where=[["is_del","=",0]];
- if($param["pid"]!=="")$where[]=["pid","=",$param["pid"]];
- if($param["cat_name"]!=="")$where[]=["cat_name","like","%".$param["cat_name"]."%"];
- if($param["status"]!=="")$where[]=["status","=",$param["status"]];
- $data=$this->model->where($where)->order("id","desc")->paginate(['page'=>$param['page'],'list_rows'=>$param['size']])
- ->each(function($item){
- return $item["im"]=CatSpecs::with(["specs"])->where("cat_id",$item["id"])->field(["specs_id"])->select();
- });
- return success("获取成功",$data);
- }
- public function create(){
- $param=$this->request->param(['cat_name', 'pid', 'cat_desc' => '', 'fund_code' => '', 'specs_id'=>[], 'weight'
- => 0, 'status' => 0],"post","trim");
- $valid=Validate::rule([
- "cat_name|分类名称"=>"require|max:255|unique:app\admin\model\Cat,cat_name^is_del",
- "pid|父级分类"=>"require|integer|egt:0",
- "cat_desc|分类描述"=>"max:255",
- "fund_code|财务代码"=>"max:255",
- "specs_id|规格id"=>"require|array",
- "weight|权重"=>"int",
- "status|状态"=>"int|in:0,1",
- ]);
- if(!$valid->check($param))return error($valid->getError());
- $parent = $this->model->where("id",$param["pid"])->findOrEmpty();
- if($parent->isEmpty())return error("父级分类不存在");
- $this->model->startTrans();
- try{
- $create=[
- "cat_name"=>$param['cat_name'],
- "pid"=>$param["pid"],
- "cat_desc"=>$param["cat_desc"],
- "fund_code"=>$param["fund_code"],
- "weight"=>$param["weight"],
- "status"=>$param["status"],
- 'creater' => $this->uname,
- 'createrid' =>$this->uid,
- ];
- $data=$this->model->create($create);
- if($data->isEmpty())return error("添加失败");
- $spec=$data->specs()->saveAll($param["specs_id"]);
- if($spec->isEmpty())return error("添加失败");
- $this->model->commit();
- }catch (\Exception $e){
- $this->model->rollback();
- return error($e->getMessage());
- }
- return success("添加成功");
- }
- }
|