getList('', 0, 'category_id'); // 若type为tree,则返回树状结构 if ($type == 'tree') { $tree = new \com\Tree(); $data = $tree->list_to_tree($data, 'category_id', 'pid', 'child', 0, true, array('')); } return $data; } /** * 创建产品分类信息 * @author Michael_xu * @param * @return */ public function createData($param) { // 自动验证 $validate = validate($this->name); if (!$validate->check($param)) { $this->error = $validate->getError(); return false; } if ($this->data($param)->allowField(true)->save()) { $data = []; $data['id'] = $this->category_id; # 系统操作日志 SystemActionLog($param['create_user_id'], 'crm_product','customer', $this->category_id, 'save',$param['name'] , '', '','添加了产品分类:'.$param['name']); return $data; } else { $this->error = '添加失败'; return false; } } /** * 编辑产品分类主表信息 * @author Michael_xu * @param * @return */ public function updateDataById($param, $category_id = '') { $dataInfo = $this->get($category_id); if (!$dataInfo) { $this->error = '数据不存在或已删除'; return false; } $param['category_id'] = $category_id; // 自动验证 $validate = validate($this->name); if (!$validate->check($param)) { $this->error = $validate->getError(); return false; } $user_id=$param['user_id']; unset($param['user_id']); if ($this->allowField(true)->save($param, ['category_id' => $category_id])) { # 系统操作日志 SystemActionLog($user_id, 'crm_product','customer', $category_id, 'update',$dataInfo['name'] , '', '','编辑了产品分类:'.$dataInfo['name']); return true; } else { $this->error = '编辑失败'; return false; } } /** * [delDataById 根据id删除数据] * @param string $param['id'] [主键] * @param boolean $delSon [是否删除子孙数据] * @return [type] [description] */ public function delDataById($param = '', $delSon = false) { if (!$param['id']) { $this->error = '删除失败'; return false; } //分类下已有产品,则不能删除 $resDel = true; if (db('crm_product')->where(['category_id' => $param['id']])->find()) { $resDel = false; } if ($delSon && is_numeric($id)) { $childIds = $this->getAllChild($id); if($childIds){ if (db('crm_product')->where(['category_id' => ['in',$childIds]])->find()) { $resDel = false; } } } if ($resDel === false) { $this->error = '请先移除该类型及子类下的相关产品'; return false; } $data=db('crm_product_category')->where('category_id' , $param['id'])->find(); //提交事务 $this->startTrans(); try { $this->where(['category_id' => $param['id']])->delete(); if ($delSon && is_numeric($param['id'])) { // 删除子孙 $childIds = $this->getAllChild($param['id']); if ($childIds) { $this->where('category_id', 'in', $childIds)->delete(); } } # 系统操作日志 SystemActionLog($param['user_id'], 'crm_product','customer', $id, 'update',$data['name'] , '', '','删除了产品分类:'.$data['name']); $this->commit(); return true; } catch(\Exception $e) { $this->error = '删除失败'; $this->rollback(); return false; } } /** * 产品分类id * @author Michael_xu * @param * @return */ public function getIdByStr($category_id_arr) { if ($category_id_arr) { $category_id = end($category_id_arr); return $category_id ? : ''; } else { return ''; } } }