Example #1
0
 public function save($requestData)
 {
     $goods_id = $this->data['id'];
     //        dump($requestData);
     //        exit;
     //开启事务
     $this->startTrans();
     //调用handleGoodsStatus计算状态
     $this->handleGoodsStatus();
     //调用父类save方法保存数据
     $result = parent::save();
     if ($result === false) {
         $this->error = '修改数据失败';
         $this->rollback();
         return false;
     }
     //将goods_intro修改到表中
     $goodsIntroModel = M('GoodsIntro');
     $result1 = $goodsIntroModel->save(array('goods_id' => $goods_id, 'intro' => $requestData['intro']));
     if ($result1 === false) {
         $this->error = '修改数据失败';
         $this->rollback();
         return false;
     }
     //将会员价格修改到goods_member_price表中,先删除,再添加
     $this->handMemberPrice($goods_id, $requestData['memberPrices']);
     //将照片地址修改到表中,新上传的都有隐藏域,直接调用handleGoodsPhoto修改
     $this->handleGoodsPhoto($goods_id, $requestData['goods_photo_paths']);
     //将文章修改到表中,每次修改上传的文章都会更新隐藏域,直接调用handleGoodsArticle修改
     $this->handleGoodsArticle($goods_id, $requestData['article_ids']);
     $this->commit();
     return $result;
 }
Example #2
0
 /**
  * 根据请求中的数据更新
  */
 public function save($requestData)
 {
     $this->startTrans();
     //开始事物
     //计算商品状态
     $this->handleGoodsStatus();
     //处理简介
     $result = $this->handleGoodsIntro($this->data['id'], $requestData['intro']);
     if ($result === false) {
         return false;
     }
     //处理相册
     $result = $this->handleGoodsGallery($this->data['id'], $requestData['gallery_path']);
     if ($result === false) {
         return false;
     }
     //处理关联文章
     $result = $this->handleGoodsArticle($this->data['id'], $requestData['article_id']);
     if ($result === false) {
         return false;
     }
     //调用父类的更新数据
     $result = parent::save();
     if ($result === false) {
         $this->rollback();
         //如果插入失败不提交事物
         return false;
     }
     $this->commit();
     //保存成功提交事物
     return $result;
     //保存成功返回状态
 }
 public function save($resquestdata)
 {
     $result = parent::save();
     if ($result === false) {
         return false;
     }
     //修改角色和权限的关系进出role_permission表
     $this->handle_role_permission($resquestdata['id'], $resquestdata['permission_ids']);
     return $result;
 }
 public function save()
 {
     $DbMysqlInterfaceIMModel = new DbMysqlInterfaceIMModel();
     $NestedSetsService = new NestedSetsService($DbMysqlInterfaceIMModel, 'permission', 'lft', 'rght', 'parent_id', 'id', 'level');
     $result = $NestedSetsService->moveUnder($this->data['id'], $this->data['parent_id']);
     if ($result === false) {
         $this->error = "不能移动到其自身以及自身一下的权限";
         return false;
     }
     return parent::save();
 }
Example #5
0
 public function changeStatus($id, $status = -1)
 {
     //根据自己的id找到自己以及子孙节点的id
     $sql = "select child.id from  goods_category as child,goods_category as parent where  parent.id = {$id}  and child.lft>=parent.lft  and child.rgt<=parent.rgt";
     $rows = $this->query($sql);
     $id = array_column($rows, 'id');
     $data = array('id' => array('in', $id), 'status' => $status);
     if ($status == -1) {
         $data['name'] = array('exp', "concat(name,'_del')");
     }
     return parent::save($data);
 }
 /**
  * 根据id更改商品分类状态
  * @param $id   数据ID
  * @param int $status 数据状态,默认值为-1(移除)
  * @return bool
  */
 public function changeStatus($id, $status = -1)
 {
     $sql = "SELECT child.id FROM goods_category AS child,goods_category AS parent WHERE parent.id={$id} AND child.lft>=parent.lft AND child.rgt<=parent.rgt";
     $rows = $this->query($sql);
     $id = array_column($rows, 'id');
     $data = array('id' => array('in', $id), 'status' => $status);
     //如果状态改为-1(移除),就将供货商的名称后面加一个'_del'的后缀
     if ($status == -1) {
         $data['name'] = array('exp', "concat(name,'_del')");
     }
     return parent::save($data);
 }
 /**
  * 覆盖默认的修改方法
  * 因为默认的修改方法不满足我的要求
  */
 public function save()
 {
     $DbMysqlInterfaceImplModel = new DbMysqlInterfaceImplModel();
     $NestedService = new NestedService($DbMysqlInterfaceImplModel, 'goods_category', 'lft', 'rght', 'parent_id', 'id', 'level');
     //移动分类,仅仅是移动
     $result = $NestedService->moveUnder($this->data['id'], $this->data['parent_id']);
     if ($result === false) {
         $this->error = "不能将父分类作为自己的分类!";
         return false;
     }
     return parent::save();
     //修改分类的数据,调用父类的修改数据到数据库
 }
 public function changeStatus($id, $status = -1)
 {
     //>>1.根据自己的id找到自己以及子孙节点的id
     $sql = "select child.id from  goods_category as child,goods_category as parent where  parent.id = {$id}  and child.lft>=parent.lft  and child.rgt<=parent.rgt";
     $rows = $this->query($sql);
     $id = array_column($rows, 'id');
     //        dump($id);
     //        exit;
     if ($status == -1) {
         // $id可能是具体的值 也可能是数组(批量删除)
         return parent::save(array('status' => $status, 'id' => array('in', $id), 'name' => array('exp', "concat(`name`,'_del')")));
     }
     return parent::save(array('status' => $status, 'id' => array('in', $id)));
 }
Example #9
0
 public function save($allPost)
 {
     $resultRole = $this->rolePermissionFunction($this->data['id'], $allPost['permission_id']);
     if ($resultRole === false) {
         return false;
     }
     //调用父类的方法添加
     $result = parent::save();
     if ($result === false) {
         $this->error = '添加失败';
         return false;
     }
     return $result;
 }
Example #10
0
 /**
  * 修改状态,同时修改其子类的状态
  * @param $id
  * @param $status
  * @return bool
  */
 public function changeStatus($id, $status)
 {
     //找到他的子类及自己的数组
     $sql = "select c.id from permission as f,permission as c where f.id = {$id} and c.lft>=f.lft and c.rgt<=f.rgt;";
     $myRow = $this->query($sql);
     $id = array_column($myRow, 'id');
     $data = array('id' => array('in', $id), 'status' => $status);
     //用in可以处理多项修改
     //status为-1为删除,同时改变name的值
     if ($status == -1) {
         $data['name'] = array('exp', "concat(name,'_del')");
     }
     return parent::save($data);
 }
Example #11
0
 public function save($updateData)
 {
     $result = parent::save();
     if ($result === false) {
         $this->error = '编辑文章时出错!';
         return false;
     }
     $articleContentModel = M('ArticleContent');
     $result = $articleContentModel->where(array('article_id' => $updateData['id']))->setField('content', $updateData['content']);
     if ($result === false) {
         $this->error = '编辑文章内容时出错!';
         return false;
     }
 }
 /**
  * 文章的修改
  * @param mixed|string $requestData
  * @return bool|mixed
  */
 public function save($requestData)
 {
     $rst = parent::save();
     if ($rst === false) {
         $this->error = "修改文章失败";
         return false;
     }
     $articleContentModel = M('ArticleContent');
     $rst = $articleContentModel->where(array('article_id' => $requestData['id']))->save(array('article_id' => $requestData['id'], 'content' => $requestData['content']));
     if ($rst === false) {
         $this->error = "修改文章失败";
         return false;
     }
 }
 public function save()
 {
     //>>1.计算左右边界
     $dbMysqlInterfaceImplModel = D('DbMysqlInterfaceImpl');
     $nestedSetService = new NestedSetsService($dbMysqlInterfaceImplModel, 'permission', 'lft', 'rght', 'parent_id', 'id', 'level');
     //根据当前id查询出父权限的id(数据库中的id)  和  请求中的父权限的id进行对应
     //>>2.进行移动
     $result = $nestedSetService->moveUnder($this->data['id'], $this->data['parent_id']);
     if ($result === false) {
         $this->error = '移动权限失败!';
         return false;
     }
     return parent::save($this->data);
 }
 /**
  * 覆盖save方法加入自己的逻辑
  */
 public function save()
 {
     //>>1.使用NestedSetService业务类完成 边界的运算
     $dbMysqlInterfaceImplModel = new DbMysqlInterfaceImplModel();
     $nestedSetService = new NestedSetsService($dbMysqlInterfaceImplModel, 'goods_category', 'lft', 'rght', 'parent_id', 'id', 'level');
     //>>调用$nestedSetService工具对象中的moveUnder方法来完成移动类的规范(人家已经写好了规则* ^ *)
     $result = $nestedSetService->moveUnder($this->data['id'], $this->data['parent_id']);
     if ($result === false) {
         $this->error = '不能添加到自己的子类中!^ . ^';
         return false;
     }
     //>>调用Model中save方法更新数据
     return parent::save();
 }
Example #15
0
 public function save($requestData)
 {
     //>>1.将请求数据(除了内容)保存到article表中
     $result = parent::save();
     if ($result === false) {
         return false;
     }
     //>>2.将内容保存到article_content表中
     $result = M('ArticleContent')->where(array('article_id' => $requestData['id']))->setField('content', $requestData['content']);
     if ($result === false) {
         return false;
     }
     return $result;
 }
 /**
  * 更新
  */
 public function save()
 {
     //生成符合分类为插入接口的对象
     $DbMysqlInterfaceIMModel = new DbMysqlInterfaceIMModel();
     //生成分类操作对象
     $NestedSetsService = new NestedSetsService($DbMysqlInterfaceIMModel, 'goods_category', 'lft', 'rght', 'parent_id', 'id', 'level');
     //执行移动
     $result = $NestedSetsService->moveUnder($this->data['id'], $this->data['parent_id'], $position = 'bottom');
     if ($result === false) {
         $this->error = "父类不能移动到子类中";
         return false;
     }
     //调用父类的方法,保存修改的数据
     parent::save();
 }
 /**
  *  改变商品分类状态.当前分类如果有子分类,其子分类一并跟随改变
  *  使用连接查询的方式,将goods_category表看做两张表.
  *  使用分类id作为父表中的查询条件,查询出当前分类数据,再作为子表的查询条件,查询出当前分类的所有子分类,改变其状态
  * @param $id
  * @param int $status
  * @return bool
  */
 public function changeStatus($id, $status = -1)
 {
     //根据自己的id找到自己以及子孙节点的id
     $sql = "select child.id from  goods_category as child,goods_category as parent where  parent.id = {$id}  and child.lft>=parent.lft  and child.rght<=parent.rght";
     $rows = $this->query($sql);
     //arrar_column()方法只有PHP5.5之后才有.所以需要做兼容性处理.将改方法在公共function.php文件中判断系统有没有这个方法,没有就定义!
     $id = array_column($rows, 'id');
     //将查询的出的id转化为一个一维数组,再作为修改状态的条件.
     $data = array('id' => array('in', $id), 'status' => $status);
     if ($status == -1) {
         $data['name'] = array('exp', "concat(name,'_del')");
         //update supplier set name = concat(name,'_del'),status = -1    where id in (1,2,3);
     }
     return parent::save($data);
 }
Example #18
0
 public function save($requestData)
 {
     //>>1.需要将create收集到的数据更新到article表中
     $result = parent::save();
     if ($result === false) {
         return false;
     }
     //>>2.需要将请求中的content数据更新到article_content表中
     $articleContentModel = M('ArticleContent');
     $result = $articleContentModel->where(array('article_id' => $requestData['id']))->setField('content', $requestData['content']);
     if ($result === false) {
         $this->error = '更新文章内容失败!';
         return false;
     }
 }
 public function changeStatus($id, $status = -1)
 {
     //根据自己的id找到子孙id
     $sql = "SELECT child.id FROM  goods_category AS child, goods_category AS parent WHERE parent.id = {$id} AND child.`lft` >= parent.`lft` AND child.rgt <= parent.`rgt`";
     //从数据库查询==>>结果为二维数组
     $rows = $this->query($sql);
     //再根据子节点id从二维数组中取出指定数据
     $ids = array_column($rows, 'id');
     $data = ['status' => $status, 'id' => array('in', $ids)];
     //根据status的值判断是删除还是修改
     if ($status == -1) {
         $data['name'] = array('exp', 'concat(name,"_del")');
     }
     return parent::save($data);
 }
 public function changestatus($id, $status = -1)
 {
     $sql = "select child.id from goods_category as child,goods_category as parent where parent.id={$id} and child.lft >= parent.lft and child.rgt<=parent.rgt";
     $rows = $this->query($sql);
     //得到的是这个节点及其所有儿子节点的id的二维数组
     $id = array();
     $id = array_column($rows, 'id');
     $data = array('status' => $status);
     $data['id'] = array('in', $id);
     if ($status == -1) {
         //表示的是此时是放入回收站,给供货商的名字加一个后缀
         $data['name'] = array('exp', "concat(name,'_del')");
     }
     return parent::save($data);
 }
 public function save()
 {
     //实例化对象
     $dbMysqlInterfaceImpModel = new DbMysqlInterfaceImpModel();
     //实例化对象并传入继承接口的对象
     $nestedSetsService = new NestedSetsService($dbMysqlInterfaceImpModel, 'shop_goods_category', 'lft', 'rght', 'parent_id', 'id', 'level');
     //使用移动数据的方法
     $reslut = $nestedSetsService->moveUnder($this->data['id'], $this->data['parent_id']);
     if ($reslut === false) {
         $this->error = '不能够将父分类作为自己的子分类';
         return false;
     }
     //修改请求中的数据
     return parent::save();
 }
 /**
  * 改变数据的status状态字段的方法(伪删除功能也是修改status字段,所以也调用此方法)
  * @param $id 传入的数据的id字段
  * @param int $status 传入的数据的status字段
  * @return bool
  */
 public function changeStatus($id, $status = -1)
 {
     //>>根据自己的id找到自己以及子孙节点的id
     $sql = "select child.id from  goods_category as child,goods_category as parent where  parent.id = {$id}  and child.lft>=parent.lft  and child.rgt<=parent.rgt";
     $rows = $this->query($sql);
     //array_column — 返回数组中指定的一列
     $id = array_column($rows, 'id');
     //>>将接收到数据保存到数组中($id可能是数组或单独数字,所以作为where条件时使用in而不是=,如where id in (1,2,3)或where id in (1)
     $data = array('id' => array('in', $id), 'status' => $status);
     //>>status字段值为-1表示数据用户希望删除该数据(伪删除功能),为了防止与用户新添加数据重名,修改要被"删除"数据的name值,在其原来name后面添加_del
     if ($status == -1) {
         $data['name'] = array('exp', "concat(name,'_del')");
     }
     //>>调用父类修改数据方法对数据进行修改,并返回结果
     return parent::save($data);
 }
Example #23
0
 public function save($requestData)
 {
     //调用父类的save方法,将基本内容修改
     $result = parent::save();
     if ($result === false) {
         return false;
     }
     $id = $requestData['id'];
     //        dump($id);
     //        exit;
     //将修改后的文章内容保存到数据表中
     $articleContentModel = M('articleContent');
     $result1 = $articleContentModel->save(array('article_id' => $id, 'content' => $requestData['content']));
     if ($result1 === false) {
         $this->error = '修改失败';
         return false;
     }
 }
Example #24
0
 /**
  * 重写save方法,修改菜单权限关系
  * @return bool
  */
 public function save($requestData)
 {
     //修改当前表,借助于netstetsets插件
     $mydb = new DbImplementServer();
     //得到实现接口的相关对象
     $netstedsets = new NestedSetsServer($mydb, 'menu', 'lft', 'rgt', 'parent_id', 'id', 'level');
     $netstedsets->moveUnder($this->data['id'], $this->data['parent_id'], 'bottom');
     //保存其他数据
     $result = parent::save();
     if ($result === false) {
         return false;
     }
     //保存菜单权限关系
     $rst = $this->handleMenuPermission($requestData['id'], $requestData['permission_ids']);
     if ($rst === false) {
         return false;
     }
     return $result;
 }
 public function save()
 {
     $this->startTrans();
     //需要将编辑回显的页面中的数据更新到当前行中, 并且要移动节点...(就是更改边界)
     $dbMysqlInterfaceImplModel = new DbMysqlInterfaceImplModel();
     $nestedSetsService = new NestedSetsService($dbMysqlInterfaceImplModel, 'goods_category', 'lft', 'rght', 'parent_id', 'id', 'level');
     //移动
     $result = $nestedSetsService->moveUnder($this->data['id'], $this->data['parent_id']);
     if ($result === false) {
         $this->rollback();
         $this->error = '不能够选中自己或者是子分类作为父分类!';
         return false;
     }
     //更新表单中的内容
     if (parent::save() === false) {
         $this->rollback();
         return false;
     }
     return $this->commit();
 }
 public function save($requestDate)
 {
     //调用父类save方法保存本表数据
     $result = parent::save();
     if ($result === false) {
         //提示错误信息
         $this->error = '保存数据失败!';
         return false;
     }
     //创建基础模型类操作article_content表
     $articleContentModel = M('ArticleContent');
     //通过article_id设置一个字段值
     $result_content = $articleContentModel->where(array('article_id' => $requestDate['id']))->setField('content', $requestDate['content']);
     if ($result_content === false) {
         //提示错误信息
         $this->error = '更新文章内容失败!';
         return false;
     }
     return $result;
 }
 public function changeStatus($id, $status = -1)
 {
     //根据自己的id,找到自己和子孙节点
     $sql = "select child.id from goods_category as child, goods_category as parent where parent.id={$id} and child.lft>=parent.lft and child.rgt<=parent.rgt;";
     $rows = $this->query($sql);
     $id = array_column($rows, 'id');
     //        foreach($rows as $row){
     //            $id[]=$row['id'];
     //        }
     $data = array('status' => $status, 'id' => array('in', $id));
     //        if(is_array($id)){
     //            $data['id']=array('in',$id);
     //        }else{
     //            $data['id']=$id;
     //        }
     if ($status == -1) {
         $data['name'] = array('exp', "concat(name,'_del')");
     }
     return parent::save($data);
 }
 public function changeStatus($id, $status = -1)
 {
     //要实现改变父节点的状态把属于他的子节点状态一起更改
     //通过自身id找到子孙以及自己
     $sql = "select child.id from goods_category as child,goods_category as parent where parent.id={$id} and child.lft>=parent.lft and child.rgt<=parent.rgt";
     $rows = $this->query($sql);
     //执行sql得到所需id的集合
     //用foreach循环取出id
     $id = array();
     foreach ($rows as $row) {
         $id[] = $row['id'];
     }
     $data = array('status' => $status, 'id' => array("in", $id));
     //如果状态值为-1 则是删除状态,由于验证字段名是从数据库中查询所以添加一个删除标示,
     if ($status == -1) {
         $data["name"] = array("exp", "concat(name,'_del')");
         //exp 表示指定后面的参数是一个表达式,
     }
     return parent::save($data);
 }
Example #29
0
 public function save($allPOST)
 {
     //实例化对象
     $dbMysqlInterfaceImpModel = new DbMysqlInterfaceImpModel();
     //实例化对象并传入继承接口的对象
     $nestedSetsService = new NestedSetsService($dbMysqlInterfaceImpModel, 'shop_menu', 'lft', 'rght', 'parent_id', 'id', 'level');
     //使用移动数据的方法
     $reslut = $nestedSetsService->moveUnder($this->data['id'], $this->data['parent_id']);
     if ($reslut === false) {
         $this->error = '不能够将父分类作为自己的子分类';
         return false;
     }
     //菜单和权限的
     $result = $this->menuPermissionFunction($this->data['id'], $allPOST['permission_id']);
     if ($result === false) {
         return false;
     }
     //修改请求中的数据
     return parent::save();
 }
Example #30
0
 public function save($requestData)
 {
     //$requestData表示post提交过来的全部值I("post.")
     $goods_id = $this->data['id'];
     //修改商品的id 也是简介表单id
     $this->startTrans();
     //开启事务
     //1.将$this->data中的数据保存到goods表中
     $this->handleGoodsStatus();
     //计算状态值
     $result = parent::save();
     if ($result === false) {
         $this->rollback();
         return false;
     }
     //2.将intro数据更新到goods_intro表中
     $goodsintromodel = M('GoodsIntro');
     $rst = $goodsintromodel->save(array('goods_id' => $goods_id, 'intro' => $requestData['intro']));
     if ($rst === false) {
         $this->error = "更新商品描述失败!!!";
         $this->rollback();
         return false;
     }
     // 3. 编辑商品会员价格 将原来会员价格删除 .添加新会员价格
     $rs = $this->handleMemberprice($goods_id, $requestData['memberlevelprice']);
     if ($rs === false) {
         return false;
     }
     //编辑时 将添加的新照片 存入数据表goods_photo
     $result3 = $this->handleGoodsPhoto($goods_id, $requestData['goods_photo_paths']);
     //        dump($requestData['goods_photo_paths']);
     //            exit;
     if ($result3 === false) {
         $this->rollback();
         return false;
     }
     $this->commit();
     //所有都成功的话 提交事务
     return $result;
 }