/** * 店铺筛选列表 (只查询status=1的) * @param $id 店铺ID编号 * @param $keyword like 店铺名称 store_name || 商品名称 goods_name * @param $attrs 筛选属性值id 以,间隔 * @param $recom 是否推荐 * @param $close 是否暂停营业 * @param $minsd 起送价 */ public function lists($id = null, $keyword = null, $attrs = null, $minsd = null) { //筛选属性id为1的所有属性值 $attrval_M = new Model('AttrVal'); $attrval = $attrval_M->where("attr_id=1 AND status=1")->order("sort asc,id desc")->getField("id,attr_val"); $this->assign('attrval', $attrval); //筛选分类 $model = new Model('Store'); $map = array(); $order = 'is_recom DESC, sort ASC, id ASC'; //查询条件 处理 $map['status'] = array('EGT', 0); if (isset($keyword)) { $this->assign('so_keyword', $keyword); $so_map = array(); $so_map['_logic'] = 'or'; //匹配店铺名称 $so_map['store_name'] = array('like', '%' . $keyword . '%'); //匹配商品名称 $goods_M = new Model('Goods'); $so_goods_map = array('goods_name' => array('like', '%' . $keyword . '%'), 'status' => 1); $so_goods_store_ids = $goods_M->where($so_goods_map)->getField('store_id', true); $so_goods_store_ids = array_unique($so_goods_store_ids); if (!empty($so_goods_store_ids)) { $so_map['id'] = array('in', $so_goods_store_ids); } $map['_complex'] = $so_map; } $map['is_close'] = '0'; $minsd = (int) $minsd; if ($minsd > 0) { $map['min_send'] = array('ELT', $minsd); //起送价 } /******************/ if (isset($attrs)) { $attrs = explode(',', $attrs); $StoreAttr_M = new StoreAttrModel(); $tmp_store_ids = $StoreAttr_M->getStoreByAttr($attrs); if (!empty($tmp_store_ids)) { $map['id'] = array('in', $tmp_store_ids); $list = $model->where($map)->order($order)->select(); //$list = $this->_lists($model,$map,$order); } else { $list = array(); } } else { $list = $model->where($map)->order($order)->select(); //$list = $this->_lists($model,$map,$order); } $this->assign('list', $list); //列表 // 记录当前列表页的cookie cookie(C('CURRENT_URL_NAME'), $_SERVER['REQUEST_URI']); $this->display(); }
/** * 店铺属性更新接口 * @param int $id 店铺ID * @param array $vals 属性值id数组 */ public function attrUpdate($id, $vals = array()) { $id = (int) $id; if ($id <= 0) { $this->error('店铺非法'); } if (!is_array($vals)) { $this->error('属性非法'); } $model = new StoreAttrModel(); if (false === $model->update($id, $vals)) { $this->error($model->getError()); } $this->success('更新成功'); }