insertAll($insert); if ($result) { foreach ((array)$insert as $v) { if ($v['goods_id']) $this->_dGoodsComboCache($v['goods_id']); } $this->publish_message(); } return $result; } /** * 查询组合商品列表 * @param unknown $condition */ public function getGoodsComboList($condition) { return $this->where($condition)->limit(false)->select(); } /** * 删除推荐组合商品 */ public function delGoodsCombo($condition) { $list = $this->getGoodsComboList($condition, 'goods_id'); if (empty($list)) { return true; } $result = $this->where($condition)->delete(); if ($result) { foreach ($list as $v) { $this->_dGoodsComboCache($v['goods_id']); } $this->publish_message(); } return $result; } public function getGoodsComboCacheByGoodsId($goods_id) { $array = $this->_rGoodsComboCache($goods_id); if (empty($array)) { $gcombo_list = array(); $combo_list = $this->getGoodsComboList(array('goods_id' => $goods_id)); if (!empty($combo_list)) { $comboid_array= array(); foreach ($combo_list as $val) { $comboid_array[] = $val['combo_goodsid']; } $gcombo_list = Model('goods')->getGeneralGoodsList(array('goods_id' => array('in', $comboid_array))); } $array = array('gcombo_list' => serialize($gcombo_list)); $this->_wGoodsComboCache($goods_id, $array); } return $array; } /** * 读取商品推荐搭配缓存 * @param int $goods_id * @return array */ private function _rGoodsComboCache($goods_id) { return rcache($goods_id, 'goods_combo'); } /** * 写入商品推荐搭配缓存 * @param int $goods_id * @param array $array * @return boolean */ private function _wGoodsComboCache($goods_id, $array) { return wcache($goods_id, $array, 'goods_combo', 60); } /** * 删除商品推荐搭配缓存 * @param int $goods_id * @return boolean */ private function _dGoodsComboCache($goods_id) { return dcache($goods_id, 'goods_combo'); } private function publish_message() { $publisher = new message\publisher(); $publisher->modify_activity_recommend_combo(); } }