0)$where['gcb.catId'] = $id; $total = Db::name('brands')->alias('b'); if($id>0){ $total->join('__CAT_BRANDS__ gcb','b.brandId = gcb.brandId','left'); } $page = $total->where($where) ->join('shops s','s.shopId=b.shopId','left') ->join('cat_brands cb','cb.brandId=b.brandId','left') ->join('goods_cats gc','gc.catId=cb.catId','left') ->where('b.dataFlag=1 and s.dataFlag=1 and s.shopStatus=1') ->field('b.brandId,b.brandName,b.brandImg,b.brandDesc,b.sortNo,s.shopName,gc.catName') ->order('b.brandId', 'desc') ->group('b.brandId') ->paginate(input('post.limit/d'))->toArray(); if(count($page['Rows'])>0){ foreach ($page['Rows'] as $key => $v){ $page['Rows'][$key]['brandDesc'] = strip_tags(htmlspecialchars_decode($v['brandDesc'])); } } return $page; } /** * 获取指定对象 */ public function getById($id){ $result = $this->where(['brandId'=>$id])->find(); //获取关联的分类 $result['catIds'] = Db::name('cat_brands')->where(['brandId'=>$id])->column('catId'); return $result; } /** * 新增 */ public function add(){ $data = input('post.'); $shop=db('shops')->where(['shopId'=>$data['shopId'],'dataFlag'=>1,'shopStatus'=>1])->find(); if(!$shop) return WSTReturn('无效的店铺,请重新输入'); WSTUnset($data,'brandId,dataFlag'); $data['createTime'] = date('Y-m-d H:i:s'); $idsStr = explode(',',$data['catId']); if($idsStr!=''){ foreach ($idsStr as $v){ if((int)$v>0)$ids[] = (int)$v; } } Db::startTrans(); try{ $result = $this->validate('Brands.add')->allowField(true)->save($data); if(false !== $result){ WSTClearAllCache(); //启用上传图片 WSTUseImages(1, $this->brandId, $data['brandImg']); //商品描述图片 WSTEditorImageRocord(1, $this->brandId, '',$data['brandDesc']); foreach ($ids as $key =>$v){ $d = array(); $d['catId'] = $v; $d['brandId'] = $this->brandId; Db::name('cat_brands')->insert($d); } Db::commit(); return WSTReturn("新增成功", 1); } }catch (\Exception $e) { Db::rollback();errLog($e); } return WSTReturn('新增失败',-1); } /** * 编辑 */ public function edit(){ $brandId = input('post.id/d'); $data = input('post.'); $idsStr = explode(',',$data['catId']); if($idsStr!=''){ foreach ($idsStr as $v){ if((int)$v>0)$ids[] = (int)$v; } } $filter = array(); //获取品牌的关联分类 $catBrands = Db::name('cat_brands')->where(['brandId'=>$brandId])->select(); foreach ($catBrands as $key =>$v){ if(!in_array($v['catId'],$ids))$filter[] = $v['catId']; } Db::startTrans(); try{ WSTUseImages(1, $brandId, $data['brandImg'], 'brands', 'brandImg'); // 品牌描述图片 $desc = $this->where('brandId',$brandId)->value('brandDesc'); WSTEditorImageRocord(1, $brandId, $desc, $data['brandDesc']); $result = $this->validate('Brands.edit')->allowField(['brandName','brandImg','brandDesc','sortNo','shopId'])->save(input('post.'),['brandId'=>$brandId]);//添加shopId mark cheng 20180207 if(false !== $result){ WSTClearAllCache(); foreach ($catBrands as $key =>$v){ Db::name('cat_brands')->where('brandId',$brandId)->delete(); } foreach ($ids as $key =>$v){ $d = array(); $d['catId'] = $v; $d['brandId'] = $brandId; Db::name('cat_brands')->insert($d); } Db::commit(); return WSTReturn("修改成功", 1); } }catch (\Exception $e) { Db::rollback();errLog($e); } return WSTReturn('修改失败',-1); } /** * 删除 */ public function del(){ $id = input('post.id/d'); $data = []; $data['dataFlag'] = -1; Db::startTrans(); try{ $result = $this->where(['brandId'=>$id])->update($data); WSTUnuseImage('brands','brandImg',$id); // 品牌描述图片 $desc = $this->where('brandId',$id)->value('brandDesc'); WSTEditorImageRocord(1, $id, $desc,''); if(false !== $result){ WSTClearAllCache(); //删除推荐品牌 Db::name('recommends')->where(['dataSrc'=>2,'dataId'=>$id])->delete(); //删除品牌和分类的关系 Db::name('cat_brands')->where(['brandId'=>$id])->delete(); Db::commit(); return WSTReturn("删除成功", 1); } }catch (\Exception $e) { Db::rollback();errLog($e); } return WSTReturn('删除失败',-1); } /** * 获取品牌 */ public function searchBrands(){ $goodsCatatId = (int)input('post.goodsCatId'); if($goodsCatatId<=0)return []; $key = input('post.key'); $where = []; $where['dataFlag'] = 1; $where['catId'] = $goodsCatatId; if($key!='')$where['brandName'] = ['like','%'.$key.'%']; return $this->alias('s')->join('__CAT_BRANDS__ cb','s.brandId=cb.brandId','inner') ->where($where)->field('brandName,s.brandId')->select(); } /** * 排序字母 */ public function letterObtain(){ $areaName = input('code'); if($areaName =='')return WSTReturn("", 1); $areaName = WSTGetFirstCharter($areaName); if($areaName){ return WSTReturn($areaName, 1); }else{ return WSTReturn("", 1); } } /** * 修改品牌排序 */ public function changeSort(){ $id = (int)input('id'); $sortNo = (int)input('sortNo'); $result = $this->setField(['brandId'=>$id,'sortNo'=>$sortNo]); if(false !== $result){ return WSTReturn("操作成功", 1); }else{ return WSTReturn($this->getError(),-1); } } }