request->only(['page' => 1, 'size' => 10, 'supplier_name' => '', 'cat_name' => '', 'supplierNo' => ''], 'post', 'trim'); $where = [['a.is_del', '=', 0]]; if ($param['supplier_name'] != '') $where[] = ['s.name', 'like', '%' . $param['supplier_name'] . '%']; if ($param['cat_name'] != '') $where[] = ['c.cat_name', 'like', '%' . $param['cat_name'] . '%']; if ($param['supplierNo'] != '') $where[] = ['a.supplierNo', '=', $param['supplierNo']]; $count = Db::name('supplier_cat') ->alias('a') ->leftJoin('supplier s', 's.code=a.supplierNo') ->leftJoin('cat c', 'c.id=a.cat_id AND c.is_del=0') ->where($where) ->count('a.id'); $list = Db::name('supplier_cat') ->alias('a') ->field('a.id,s.name supplier_name,c.cat_name,c.level,a.status') ->leftJoin('supplier s', 's.code=a.supplierNo') ->leftJoin('cat c', 'c.id=a.cat_id AND c.is_del=0') ->where($where) ->order('a.id', 'desc') ->page($param['page'], $param['size']) ->select() ->toArray(); return json_show(0, '获取列表成功', ['count' => $count, 'list' => $list]); } //添加 public function add() { $param = $this->request->only(['supplierNo', 'cat_id'], 'post', 'trim'); $val = Validate::rule([ 'supplierNo|公司编码' => 'require|length:18', 'cat_id|分类id' => 'require|array|max:100', ]); if (!$val->check($param)) return json_show(1004, $val->getError()); //该公司下已存在的分类id $exis_cat_id = Db::name('supplier_cat') ->where(['is_del' => 0, 'supplierNo' => $param['supplierNo']]) ->column('id', 'cat_id'); $insert = []; $date = date('Y-m-d H:i:s'); foreach ($param['cat_id'] as $cat_id) { if (!isset($exis_cat_id[$cat_id])) { $insert[] = [ 'cat_id' => $cat_id, 'supplierNo' => $param['supplierNo'], 'status' => 1, 'is_del' => 0, 'addtime' => $date, 'updatetime' => $date, ]; } } $rs = 0; if ($insert) $rs = Db::name('supplier_cat')->insertAll($insert); return $rs ? json_show(0, '添加成功') : json_show(1004, '添加失败'); } //详情 public function info() { $id = $this->request->post('id/d', 0, 'trim'); $rs = Db::name('supplier_cat') ->where(['id' => $id, 'is_del' => 0]) ->findOrEmpty(); return json_show(0, '获取详情成功', $rs); } //编辑 public function update() { $param = $this->request->only(['id', 'cat_id'], 'post', 'trim'); $val = Validate::rule([ 'id' => 'require|number|gt:0', 'cat_id|分类id' => 'require|number|gt:0', ]); if (!$val->check($param)) return json_show(1004, $val->getError()); $rs = Db::name('supplier_cat') ->field('id,supplierNo') ->where(['is_del' => 0, 'id' => $param['id']]) ->findOrEmpty(); if (empty($rs)) return json_show(1004, '该记录不存在'); $tmp = Db::name('supplier_cat') ->field('id') ->where(['is_del' => 0, 'supplierNo' => $rs['supplierNo'], 'cat_id' => $param['cat_id']]) ->where('id', '<>', $param['id']) ->findOrEmpty(); if (!empty($tmp)) return json_show(1004, '该分类在该公司下已存在'); $rs = Db::name('supplier_cat') ->where(['is_del' => 0, 'id' => $param['id']]) ->update([ 'cat_id' => $param['cat_id'], 'updatetime' => date('Y-m-d H:i:s') ]); return $rs ? json_show(0, '修改成功') : json_show(1004, '修改失败'); } //启禁用 public function status() { $param = $this->request->only(['id', 'status'], 'post', 'trim'); $val = Validate::rule([ 'id' => 'require|number|gt:0', 'status|状态' => 'require|number|in:0,1', ]); if (!$val->check($param)) return json_show(1004, $val->getError()); $tmp = Db::name('supplier_cat') ->field('id,status') ->where(['is_del' => 0, 'id' => $param['id']]) ->findOrEmpty(); if (empty($tmp)) return json_show(1004, '该记录不存在'); if ($tmp['status'] == $param['status']) return json_show(1004, '重复操作'); $rs = Db::name('supplier_cat') ->where(['is_del' => 0, 'id' => $param['id']]) ->where('status', '<>', $param['status']) ->update([ 'status' => $param['status'], 'updatetime' => date('Y-m-d H:i:s') ]); return $rs ? json_show(0, '操作成功') : json_show(1004, '操作失败'); } //删除 public function delete() { $id = $this->request->post('id/d', 0, 'trim'); $rs = Db::name('supplier_cat') ->where(['is_del' => 0, 'id' => $id]) ->update([ 'is_del' => 1, 'updatetime' => date('Y-m-d H:i:s') ]); return $rs ? json_show(0, '删除成功') : json_show(1004, '删除失败'); } }