コード例 #1
0
ファイル: circle.php プロジェクト: ff00x0/shopnc-api
 /**
  * GET 圈子详情
  */
 public function circleInfoOp()
 {
     $c_id = $_GET['circle_id'];
     if ($c_id != '' && $c_id > 0) {
         $circle_info = Model()->table('circle')->find($c_id);
         if (empty($circle_info)) {
             output_error("圈子不存在");
             die;
         }
         //圈主和管理员信息
         $prefix = 'circle_managelist';
         $manager_list = rcache($this->c_id, $prefix);
         if (empty($manager_list)) {
             $manager_list = Model()->table('circle_member')->where(array('circle_id' => $this->c_id, 'is_identity' => array('in', array(1, 2))))->page($this->page)->select();
             $manager_list = array_under_reset($manager_list, 'is_identity', 2);
             $manager_list[2] = array_under_reset($manager_list[2], 'member_id', 1);
             wcache($this->c_id, $manager_list, $prefix);
         }
         $circle_info['circle_masteravatar'] = getMemberAvatarForID($circle_info['circle_masterid']);
         output_data(array('circle_info' => $circle_info, 'creator' => $manager_list[1][0], 'manager_list' => $manager_list[2]));
     } else {
         output_error("圈子id错误");
         die;
     }
 }
コード例 #2
0
 /**
  * 根据商品编号查询商品评价信息 
  */
 public function getEvaluateGoodsInfoByGoodsID($goods_id)
 {
     $prefix = 'evaluation_goods_info';
     $info = rcache($goods_id, $prefix);
     if (empty($info)) {
         $info = array();
         $good = $this->field('count(*) as count')->where(array('geval_goodsid' => $goods_id, 'geval_scores' => array('in', '4,5')))->find();
         $info['good'] = $good['count'];
         $normal = $this->field('count(*) as count')->where(array('geval_goodsid' => $goods_id, 'geval_scores' => array('in', '2,3')))->find();
         $info['normal'] = $normal['count'];
         $bad = $this->field('count(*) as count')->where(array('geval_goodsid' => $goods_id, 'geval_scores' => array('in', '1')))->find();
         $info['bad'] = $bad['count'];
         $info['all'] = $info['good'] + $info['normal'] + $info['bad'];
         if (intval($info['all']) > 0) {
             $info['good_percent'] = intval($info['good'] / $info['all'] * 100);
             $info['normal_percent'] = intval($info['normal'] / $info['all'] * 100);
             $info['bad_percent'] = intval($info['bad'] / $info['all'] * 100);
             $info['good_star'] = ceil($info['good'] / $info['all'] * 5);
         } else {
             $info['good_percent'] = 100;
             $info['normal_percent'] = 0;
             $info['bad_percent'] = 0;
             $info['good_star'] = 5;
         }
         //更新商品表好评星级和评论数
         $model_goods = Model('goods');
         $update = array();
         $update['evaluation_good_star'] = $info['good_star'];
         $update['evaluation_count'] = $info['all'];
         $model_goods->editGoods($update, array('goods_id' => $goods_id));
         wcache($goods_id, $info, $prefix);
     }
     return $info;
 }
コード例 #3
0
ファイル: member.model.php プロジェクト: noikiy/ejia
 /**
  * 取得会员详细信息(优先查询缓存)
  * 如果未找到,则缓存所有字段
  * @param int $member_id
  * @param string $field 需要取得的缓存键值, 例如:'*','member_name,member_sex'
  * @return array
  */
 public function getMemberInfoByID($member_id, $fields = '*') {
     $member_info = rcache($member_id, 'member', $fields);
     if (empty($member_info)) {
         $member_info = $this->getMemberInfo(array('member_id'=>$member_id),'*',true);
         wcache($member_id, $member_info, 'member');
     }
     return $member_info;
 }
コード例 #4
0
 /**
  * 根据分类编号获取分类评分数据
  */
 public function getEvaluateStoreInfoByScID($sc_id)
 {
     $prefix = 'sc_evaluate_store_info';
     $info = rcache($sc_id, $prefix);
     if (empty($info)) {
         $model_store = Model('store');
         $store_id_string = $model_store->getStoreIDString(array('sc_id' => $sc_id));
         $info = $this->_getEvaluateStore(array('seval_storeid' => array('in', $store_id_string)));
         wcache($sc_id, $info, $prefix);
     }
     return $info;
 }
コード例 #5
0
ファイル: control.php プロジェクト: uwitec/xbshop
 /**
  * 圈主和管理信息
  */
 protected function manageList()
 {
     $prefix = 'circle_managelist';
     $manager_list = rcache($this->c_id, $prefix);
     if (empty($manager_list)) {
         $manager_list = Model()->table('circle_member')->where(array('circle_id' => $this->c_id, 'is_identity' => array('in', array(1, 2))))->select();
         $manager_list = array_under_reset($manager_list, 'is_identity', 2);
         $manager_list[2] = array_under_reset($manager_list[2], 'member_id', 1);
         wcache($this->c_id, $manager_list, $prefix);
     }
     Tpl::output('creator', $manager_list[1][0]);
     Tpl::output('manager_list', $manager_list[2]);
 }
コード例 #6
0
ファイル: goods.php プロジェクト: lehman3087/wanhaoshop
 /**
  * 单个商品信息页
  */
 public function indexOp()
 {
     $goods_id = intval($_GET['goods_id']);
     // 商品详细信息
     $model_goods = Model('goods');
     $goods_detail = $model_goods->getGoodsDetail($goods_id);
     $goods_info = $goods_detail['goods_info'];
     if (empty($goods_info)) {
         showMessage(L('goods_index_no_goods'), '', 'html', 'error');
     }
     // by 33hao.com
     $rs = $model_goods->getGoodsList(array('goods_commonid' => $goods_info['goods_commonid']));
     $count = 0;
     foreach ($rs as $v) {
         $count += $v['goods_salenum'];
     }
     $goods_info['goods_salenum'] = $count;
     //  添加 end
     $this->getStoreInfo($goods_info['store_id']);
     Tpl::output('spec_list', $goods_detail['spec_list']);
     Tpl::output('spec_image', $goods_detail['spec_image']);
     Tpl::output('goods_image', $goods_detail['goods_image']);
     Tpl::output('mansong_info', $goods_detail['mansong_info']);
     Tpl::output('gift_array', $goods_detail['gift_array']);
     // 生成缓存的键值
     $hash_key = $goods_info['goods_id'];
     $_cache = rcache($hash_key, 'product');
     if (empty($_cache)) {
         // 查询SNS中该商品的信息
         $snsgoodsinfo = Model('sns_goods')->getSNSGoodsInfo(array('snsgoods_goodsid' => $goods_info['goods_id']), 'snsgoods_likenum,snsgoods_sharenum');
         $data = array();
         $data['likenum'] = $snsgoodsinfo['snsgoods_likenum'];
         $data['sharenum'] = $snsgoodsinfo['snsgoods_sharenum'];
         // 缓存商品信息
         wcache($hash_key, $data, 'product');
     }
     $goods_info = array_merge($goods_info, $_cache);
     $inform_switch = true;
     // 检测商品是否下架,检查是否为店主本人
     if ($goods_info['goods_state'] != 1 || $goods_info['goods_verify'] != 1 || $goods_info['store_id'] == $_SESSION['store_id']) {
         $inform_switch = false;
     }
     Tpl::output('inform_switch', $inform_switch);
     // 如果使用运费模板
     if ($goods_info['transport_id'] > 0) {
         // 取得三种运送方式默认运费
         $model_transport = Model('transport');
         $transport = $model_transport->getExtendList(array('transport_id' => $goods_info['transport_id'], 'is_default' => 1));
         if (!empty($transport) && is_array($transport)) {
             foreach ($transport as $v) {
                 $goods_info[$v['type'] . "_price"] = $v['sprice'];
             }
         }
     }
     Tpl::output('goods', $goods_info);
     //v3-b11 抢购商品是否开始
     $IsHaveBuy = 0;
     if (!empty($_SESSION['member_id'])) {
         $buyer_id = $_SESSION['member_id'];
         $promotion_type = $goods_info["promotion_type"];
         if ($promotion_type == 'groupbuy') {
             //检测是否限购数量
             $upper_limit = $goods_info["upper_limit"];
             if ($upper_limit > 0) {
                 //查询些会员的订单中,是否已买过了
                 $model_order = Model('order');
                 //取商品列表
                 $order_goods_list = $model_order->getOrderGoodsList(array('goods_id' => $goods_id, 'buyer_id' => $buyer_id, 'goods_type' => 2));
                 if ($order_goods_list) {
                     //取得上次购买的活动编号(防一个商品参加多次团购活动的问题)
                     $promotions_id = $order_goods_list[0]["promotions_id"];
                     //用此编号取数据,检测是否这次活动的订单商品。
                     $model_groupbuy = Model('groupbuy');
                     $groupbuy_info = $model_groupbuy->getGroupbuyInfo(array('groupbuy_id' => $promotions_id));
                     if ($groupbuy_info) {
                         $IsHaveBuy = 1;
                     } else {
                         $IsHaveBuy = 0;
                     }
                 }
             }
         }
     }
     Tpl::output('IsHaveBuy', $IsHaveBuy);
     //end
     $model_plate = Model('store_plate');
     // 顶部关联版式
     if ($goods_info['plateid_top'] > 0) {
         $plate_top = $model_plate->getStorePlateInfoByID($goods_info['plateid_top']);
         Tpl::output('plate_top', $plate_top);
     }
     // 底部关联版式
     if ($goods_info['plateid_bottom'] > 0) {
         $plate_bottom = $model_plate->getStorePlateInfoByID($goods_info['plateid_bottom']);
         Tpl::output('plate_bottom', $plate_bottom);
     }
     Tpl::output('store_id', $goods_info['store_id']);
     // 输出一级地区
     $area_list = Model('area')->getTopLevelAreas();
     if (strtoupper(CHARSET) == 'GBK') {
         $area_list = Language::getGBK($area_list);
     }
     Tpl::output('area_list', $area_list);
     //优先得到推荐商品
     $goods_commend_list = $model_goods->getGoodsOnlineList(array('store_id' => $goods_info['store_id'], 'goods_commend' => 1), 'goods_id,goods_name,goods_jingle,goods_image,store_id,goods_price', 0, 'rand()', 5, 'goods_commonid');
     Tpl::output('goods_commend', $goods_commend_list);
     // 当前位置导航
     $nav_link_list = Model('goods_class')->getGoodsClassNav($goods_info['gc_id'], 0);
     $nav_link_list[] = array('title' => $goods_info['goods_name']);
     Tpl::output('nav_link_list', $nav_link_list);
     //评价信息
     $goods_evaluate_info = Model('evaluate_goods')->getEvaluateGoodsInfoByGoodsID($goods_id);
     Tpl::output('goods_evaluate_info', $goods_evaluate_info);
     $seo_param = array();
     $seo_param['name'] = $goods_info['goods_name'];
     $seo_param['key'] = $goods_info['goods_keywords'];
     $seo_param['description'] = $goods_info['goods_description'];
     Model('seo')->type('product')->param($seo_param)->show();
     Tpl::showpage('goods');
 }
コード例 #7
0
ファイル: store.model.php プロジェクト: bubargaininc/oak_oak
 /**
  * 获取商品收藏排行
  *
  * @param int $store_id 店铺编号
  * @param int $limit 数量
  * @return array	商品信息
  */
 public function getHotCollectList($store_id, $limit = 5)
 {
     $prefix = 'store_collect_sales_list_' . $limit;
     $hot_collect_list = rcache($store_id, $prefix);
     if (empty($hot_collect_list)) {
         $model_goods = Model('goods');
         $hot_collect_list = $model_goods->getGoodsOnlineList(array('store_id' => $store_id), '*', 0, 'goods_collect desc', $limit);
         wcache($store_id, $hot_collect_list, $prefix);
     }
     return $hot_collect_list;
 }
コード例 #8
0
 /**
  * 写入商品优惠套装缓存
  * @param int $goods_id
  * @param array $array
  * @return boolean
  */
 private function _wGoodsBundlingCache($goods_id, $array)
 {
     return wcache($goods_id, $array, 'goods_bundling');
 }
コード例 #9
0
 /**
  * 根据分类编号获取分类评分数据
  */
 public function getEvaluateStoreInfoByScID($sc_id)
 {
     $prefix = 'sc_evaluate_store_info';
     $info = rcache($sc_id, $prefix);
     if (empty($info)) {
         $model_store = Model('store');
         $store_id_string = $model_store->getStoreIDString(array('sc_id' => $sc_id));
         $info = $this->_getEvaluateStore(array('seval_storeid' => array('in', $store_id_string)));
         $cache = array();
         $cache['evaluate_store_info'] = serialize($info);
         wcache($sc_id, $cache, $prefix, 60 * 24);
     } else {
         $info = unserialize($info['evaluate_store_info']);
     }
     return $info;
 }
コード例 #10
0
ファイル: brand.model.php プロジェクト: bubargaininc/oak_oak
 public function editbrand($update, $condition)
 {
     //清空缓存
     $store_list = $this->getStoreList($condition);
     foreach ($store_list as $value) {
         wcache($value['brand_id'], array(), 'store_info');
     }
     return $this->where($condition)->update($update);
 }
コード例 #11
0
ファイル: control.php プロジェクト: bubargaininc/oak_oak
 /**
  * 用户详细信息
  */
 protected function get_member_detail_info($member_info)
 {
     //生成缓存的键值
     $member_id = $member_info['member_id'];
     if ($member_id <= 0) {
         return null;
     }
     //写入缓存的数据
     $cachekey_arr = array('member_name', 'store_id', 'member_avatar', 'member_qq', 'member_email', 'member_msn', 'member_ww', 'member_points', 'available_predeposit', 'member_snsvisitnum', 'credit_arr', 'fan_count', 'attention_count');
     //先查找$member_id缓存
     if ($_cache = rcache($member_id, 'sns_member')) {
         foreach ($_cache as $k => $v) {
             $member_info[$k] = $v;
         }
     } else {
         $model = Model();
         //粉丝数
         $fan_count = $model->table('sns_friend')->where(array('friend_tomid' => $member_id))->count();
         $member_info['fan_count'] = $fan_count;
         //关注数
         $attention_count = $model->table('sns_friend')->where(array('friend_frommid' => $member_id))->count();
         $member_info['attention_count'] = $attention_count;
         //兴趣标签
         $mtag_list = $model->table('sns_membertag,sns_mtagmember')->field('mtag_name')->on('sns_membertag.mtag_id = sns_mtagmember.mtag_id')->join('inner')->where(array('sns_mtagmember.member_id' => $member_id))->select();
         $tagname_array = array();
         if (!empty($mtag_list)) {
             foreach ($mtag_list as $val) {
                 $tagname_array[] = $val['mtag_name'];
             }
         }
         $member_info['tagname'] = $tagname_array;
         wcache($member_id, $member_info, 'sns_member');
     }
     return $member_info;
 }
コード例 #12
0
ファイル: goods.php プロジェクト: xuxuecheng/shopnc
 /**
  * 将缓存中的浏览记录存入数据库中,并删除30天前的浏览历史
  */
 public function browseOp()
 {
     $model = Model('goods_browse');
     //将cache中的记录存入数据库
     if (C('cache.type') != 'file') {
         //如果浏览记录已经存入了缓存中,则将其整理到数据库中
         //上次更新缓存的时间
         $latest_record = $model->getGoodsbrowseOne(array(), '', 'browsetime desc');
         $starttime = ($t = intval($latest_record['browsetime'])) ? $t : 0;
         $monthago = strtotime(date('Y-m-d', time())) - 86400 * 30;
         $model_member = Model('member');
         //查询会员信息总条数
         $countnum = $model_member->getMemberCount(array());
         $eachnum = 100;
         for ($i = 0; $i < $countnum; $i += $eachnum) {
             //每次查询100条
             $member_list = $model_member->getMemberList(array(), '*', 0, 'member_id asc', "{$i},{$eachnum}");
             foreach ((array) $member_list as $k => $v) {
                 $insert_arr = array();
                 $goodsid_arr = array();
                 //生成缓存的键值
                 $hash_key = $v['member_id'];
                 $browse_goodsid = rcache($hash_key, 'goodsbrowse', 'goodsid');
                 if ($browse_goodsid) {
                     //删除缓存中多余的浏览历史记录,仅保留最近的30条浏览历史,先取出最近30条浏览历史的商品ID
                     $cachegoodsid_arr = $browse_goodsid['goodsid'] ? unserialize($browse_goodsid['goodsid']) : array();
                     unset($browse_goodsid['goodsid']);
                     if ($cachegoodsid_arr) {
                         $cachegoodsid_arr = array_slice($cachegoodsid_arr, -30, 30, true);
                     }
                     //处理存入数据库的浏览历史缓存信息
                     $_cache = rcache($hash_key, 'goodsbrowse');
                     foreach ((array) $_cache as $c_k => $c_v) {
                         $c_v = unserialize($c_v);
                         if ($c_v['browsetime'] >= $starttime) {
                             //如果 缓存中的数据未更新到数据库中(即添加时间大于上次更新到数据库中的数据时间)则将数据更新到数据库中
                             $tmp_arr = array();
                             $tmp_arr['goods_id'] = $c_v['goods_id'];
                             $tmp_arr['member_id'] = $v['member_id'];
                             $tmp_arr['browsetime'] = $c_v['browsetime'];
                             $tmp_arr['gc_id'] = $c_v['gc_id'];
                             $tmp_arr['gc_id_1'] = $c_v['gc_id_1'];
                             $tmp_arr['gc_id_2'] = $c_v['gc_id_2'];
                             $tmp_arr['gc_id_3'] = $c_v['gc_id_3'];
                             $insert_arr[] = $tmp_arr;
                             $goodsid_arr[] = $c_v['goods_id'];
                         }
                         //除了最近的30条浏览历史之外多余的浏览历史记录或者30天之前的浏览历史从缓存中删除
                         if (!in_array($c_v['goods_id'], $cachegoodsid_arr) || $c_v['browsetime'] < $monthago) {
                             unset($_cache[$c_k]);
                         }
                     }
                     //删除已经存在的该商品浏览记录
                     if ($goodsid_arr) {
                         $model->delGoodsbrowse(array('member_id' => $v['member_id'], 'goods_id' => array('in', $goodsid_arr)));
                     }
                     //将缓存中的浏览历史存入数据库
                     if ($insert_arr) {
                         $model->addGoodsbrowseAll($insert_arr);
                     }
                     //重新赋值浏览历史缓存
                     dcache($hash_key, 'goodsbrowse');
                     $_cache['goodsid'] = serialize($cachegoodsid_arr);
                     wcache($hash_key, $_cache, 'goodsbrowse');
                 }
             }
         }
     }
     //删除30天前的浏览历史
     $model->delGoodsbrowse(array('browsetime' => array('lt', $monthago)));
 }
コード例 #13
0
 /**
  * 写入商品满即送缓存
  * @param int $store_id
  * @param array $mansong_info
  * @return boolean
  */
 private function _wGoodsMansongCache($store_id, $mansong_info)
 {
     return wcache($store_id, $mansong_info, 'goods_mansong');
 }
コード例 #14
0
ファイル: pointcart.model.php プロジェクト: noikiy/ejia
	/**
	 * 删除特定条件礼品购物车信息
	 * @param	mixed $pc_id 删除记录编号
	 */
	public function delPointCart($where, $member_id = 0){
		$result = $this->table('points_cart')->where($where)->delete();
		//清除相关缓存
		if ($result && $member_id > 0){
		    wcache($member_id, array('pointcart_count' => null), 'm_pointcart');
		}
		return $result;
	}
コード例 #15
0
 /**
  * 获取店铺商品数
  *
  * @param array $store_array 店铺数组
  * @return array $store_array 包含商品数goods_count的店铺数组
  */
 public function getGoodsCountByStoreArray($store_array)
 {
     $store_array_new = array();
     $model = Model();
     $no_cache_store = '';
     foreach ($store_array as $value) {
         $goods_count = rcache($value['store_id'], 'store_goods_count');
         if (!empty($goods_count) && $goods_count !== FALSE) {
             //有缓存的直接赋值
             $value['goods_count'] = $goods_count;
         } else {
             //没有缓存记录store_id,统计从数据库读取
             $no_cache_store .= $value['store_id'] . ',';
             $value['goods_count'] = '0';
         }
         $store_array_new[$value['store_id']] = $value;
     }
     if (!empty($no_cache_store)) {
         //从数据库读取店铺商品数赋值并缓存
         $no_cache_store = rtrim($no_cache_store, ',');
         $condition = array();
         $condition['goods_state'] = '1';
         $condition['store_id'] = array('in', $no_cache_store);
         $goods_count_array = $model->table('goods')->field('store_id,count(*) as goods_count')->where($condition)->group('store_id')->select();
         if (!empty($goods_count_array)) {
             foreach ($goods_count_array as $value) {
                 $store_array_new[$value['store_id']]['goods_count'] = $value['goods_count'];
                 wcache($value['store_id'], $value['goods_count'], 'store_goods_count');
             }
         }
     }
     return $store_array_new;
 }
コード例 #16
0
 /**
  * 浏览过的商品加入浏览历史cache
  *
  * @param mixed $goods_id 商品ID或者商品ID数组
  * @param int $member_id 会员ID(一般传递$_SESSION['member_id'])
  * @param int $store_id 店铺ID(一般传递$_SESSION['store_id'])
  * @param array $goods_info 如果已经获取了商品信息则可传递至函数,避免重复查询
  * @return array
  */
 public function addViewedGoodsToCache($goods_id, $member_id, $store_id = 0, $goods_info = array())
 {
     if (!$goods_id || $member_id <= 0) {
         return array('state' => false, 'msg' => '参数错误');
     }
     $browsetime = time();
     if (!$goods_info) {
         //查询商品详细信息
         $model_goods = Model('goods');
         if (is_array($goods_id)) {
             $goods_infotmp = $model_goods->getGoodsList(array('goods_id' => array('in', $goods_id)), 'goods_id,gc_id,gc_id_1,gc_id_2,gc_id_3,store_id');
             if (!$goods_infotmp) {
                 return array('state' => true);
             }
             foreach ($goods_infotmp as $k => $v) {
                 if ($store_id != $goods_infotmp['store_id']) {
                     //店铺浏览自己的商品不加入浏览历史
                     $goods_infotmp[$v['goods_id']] = $v;
                 }
             }
             if (!$goods_infotmp) {
                 return array('state' => true);
             }
             //对数组按照浏览先后进行排序
             foreach ($goods_id as $v) {
                 if ($goods_infotmp[$v]) {
                     $goods_info[$v] = $goods_infotmp[$v];
                 }
             }
         } else {
             $goods_infotmp = $model_goods->getGoodsInfoByID($goods_id, 'goods_id,gc_id,gc_id_1,gc_id_2,gc_id_3,store_id');
             if (!$goods_infotmp || $store_id == $goods_infotmp['store_id']) {
                 //店铺浏览自己的商品不加入浏览历史
                 return array('state' => true);
             }
             $goods_info[$goods_id] = $goods_infotmp;
         }
     }
     //生成缓存的键值
     $hash_key = $member_id;
     //处理浏览历史cache中商品ID
     $_cache = rcache($hash_key, 'goodsbrowse', 'goodsid');
     $goodsid_arr = $_cache['goodsid'] ? unserialize($_cache['goodsid']) : array();
     if ($goodsid_arr) {
         //如果商品ID已经存在则先删除该ID,然后在数组末尾新增该ID
         $goodsid_arr = array_diff($goodsid_arr, array_keys($goods_info));
         array_push($goodsid_arr, implode(',', array_keys($goods_info)));
     } else {
         $goodsid_arr = array_keys($goods_info);
     }
     $_cache['goodsid'] = serialize($goodsid_arr);
     //处理浏览历史cache中商品详细信息
     foreach ($goods_info as $k => $v) {
         $tmp_arr = array();
         $tmp_arr['goods_id'] = $v['goods_id'];
         $tmp_arr['member_id'] = $member_id;
         $tmp_arr['browsetime'] = $v['browsetime'] ? $v['browsetime'] : $browsetime;
         $tmp_arr['gc_id'] = $v['gc_id'];
         $tmp_arr['gc_id_1'] = $v['gc_id_1'];
         $tmp_arr['gc_id_2'] = $v['gc_id_2'];
         $tmp_arr['gc_id_3'] = $v['gc_id_3'];
         $_cache[$k] = serialize($tmp_arr);
     }
     //缓存商品信息
     wcache($hash_key, $_cache, 'goodsbrowse');
     return array('state' => true);
 }
コード例 #17
0
 /**
  * 写入商品限时折扣缓存
  * @param int $goods_id
  * @param array $info
  * @return boolean
  */
 private function _wGoodsXianshiCache($goods_id, $info)
 {
     return wcache($goods_id, $info, 'goods_xianshi');
 }
コード例 #18
0
 /**
  * 写入商品公共缓存
  * @param int $goods_id
  * @param array $list
  * @return boolean
  */
 private function _wGoodsGiftCache($goods_id, $list)
 {
     return wcache($goods_id, $list, 'goods_gift');
 }
コード例 #19
0
ファイル: member_snsindex.php プロジェクト: noikiy/ejia
	/**
	 * 喜欢商品(访客登录后操作)
	 */
	public function editlikeOp(){
		$obj_validate = new Validate();
		$validate_arr[] = array("input"=>$_GET["id"], "require"=>"true","message"=>Language::get('sns_likegoods_choose'));
		$obj_validate -> validateparam = $validate_arr;
		$error = $obj_validate->validate();
		if ($error != ''){
			showDialog($error,'','error');
		}
		//查询会员信息
		$member_model = Model('member');
		$member_info = $member_model->getMemberInfo(array('member_id'=>$_SESSION['member_id'],'member_state'=>1));
		if (empty($member_info)){
			showDialog(Language::get('sns_member_error'),'','error');
		}
		//查询商品信息
		$goods_model = Model('goods');
		$goods_info = $goods_model->getGoodsOnlineInfoForShare(intval($_GET["id"]));
		if (empty($goods_info)){
			showDialog(Language::get('sns_goods_error'),'','error');
		}
		$sharegoods_model = Model('sns_sharegoods');
		//判断该商品是否已经存在分享记录
		$sharegoods_info = $sharegoods_model->getSharegoodsInfo(array('share_memberid'=>"{$_SESSION['member_id']}",'share_goodsid'=>"{$goods_info['goods_id']}"));
		if (!empty($sharegoods_info) && $sharegoods_info['share_islike'] == 1){
			showDialog(Language::get('sns_likegoods_exist'),'','error');
		}
		if (empty($sharegoods_info)){
			//添加分享商品信息
			$insert_arr = array();
			$insert_arr['share_goodsid'] = $goods_info['goods_id'];
			$insert_arr['share_memberid'] = $_SESSION['member_id'];
			$insert_arr['share_membername'] = $_SESSION['member_name'];
			$insert_arr['share_content'] = '';
			$insert_arr['share_likeaddtime'] = time();
			$insert_arr['share_privacy'] = 0;
			$insert_arr['share_commentcount'] = 0;
			$insert_arr['share_islike'] = 1;
			$result = $sharegoods_model->sharegoodsAdd($insert_arr);
			unset($insert_arr);
		}else {
			//更新分享商品信息
			$update_arr = array();
			$update_arr['share_likeaddtime'] = time();
			$update_arr['share_islike'] = 1;
			$result = $sharegoods_model->editSharegoods($update_arr,array('share_id'=>"{$sharegoods_info['share_id']}"));
			unset($update_arr);
		}
		if ($result){
			//商品缓存数据更新
			//生成缓存的键值
			$hash_key = $goods_info['goods_id'];
			//先查找$hash_key缓存
			if ($_cache = rcache($hash_key,'product')){
				$_cache['likenum'] = intval($_cache['likenum'])+1;
				//缓存商品信息
				wcache($hash_key,$_cache,'product');
			}
			//更新SNS商品表信息
			$snsgoods_model = Model('sns_goods');
			$snsgoods_info = $snsgoods_model->getGoodsInfo(array('snsgoods_goodsid'=>"{$goods_info['goods_id']}"));
			if (empty($snsgoods_info)){
				//添加SNS商品
				$insert_arr = array();
				$insert_arr['snsgoods_goodsid'] = $goods_info['goods_id'];
				$insert_arr['snsgoods_goodsname'] = $goods_info['goods_name'];
				$insert_arr['snsgoods_goodsimage'] = $goods_info['goods_image'];
				$insert_arr['snsgoods_goodsprice'] = $goods_info['goods_price'];
				$insert_arr['snsgoods_storeid'] = $goods_info['store_id'];
				$insert_arr['snsgoods_storename'] = $goods_info['store_name'];
				$insert_arr['snsgoods_addtime'] = time();
				$insert_arr['snsgoods_likenum'] = 1;
				$insert_arr['snsgoods_likemember'] = "{$_SESSION['member_id']}";
				$insert_arr['snsgoods_sharenum'] = 0;
				$snsgoods_model->goodsAdd($insert_arr);
				unset($insert_arr);
			}else {
				//更新SNS商品
				$update_arr = array();
				$update_arr['snsgoods_likenum'] = intval($snsgoods_info['snsgoods_likenum'])+1;
				$likemember_arr = array();
				if (!empty($snsgoods_info['snsgoods_likemember'])){
					$likemember_arr = explode(',',$snsgoods_info['snsgoods_likemember']);
				}
				$likemember_arr[] = $_SESSION['member_id'];
				$update_arr['snsgoods_likemember'] = implode(',',$likemember_arr);
				$snsgoods_model->editGoods($update_arr,array('snsgoods_goodsid'=>"{$goods_info['goods_id']}"));
			}
			//添加喜欢动态
			$tracelog_model = Model('sns_tracelog');
			$insert_arr = array();
			$insert_arr['trace_originalid'] = '0';
			$insert_arr['trace_originalmemberid'] = '0';
			$insert_arr['trace_memberid'] = $_SESSION['member_id'];
			$insert_arr['trace_membername'] = $_SESSION['member_name'];
			$insert_arr['trace_memberavatar'] = $member_info['member_avatar'];
			$insert_arr['trace_title'] = Language::get('sns_likegoods_title');
			$content_str = '';
			$content_str .= "<div class=\"fd-media\">
				<div class=\"goodsimg\"><a target=\"_blank\" href=\"".urlShop('goods', 'index', array('goods_id'=>$goods_info['goods_id']))."\"><img src=\"".thumb($goods_info, 240)."\" onload=\"javascript:DrawImage(this,120,120);\" alt=\"{$goods_info['goods_name']}\"></a></div>
				<div class=\"goodsinfo\">
					<dl>
						<dt><a target=\"_blank\" href=\"".urlShop('goods', 'index', array('goods_id'=>$goods_info['goods_id']))."\">".$goods_info['goods_name']."</a></dt>
						<dd>".Language::get('sns_sharegoods_price').Language::get('nc_colon').Language::get('currency').$goods_info['goods_price']."</dd>
						<dd>".Language::get('sns_sharegoods_freight').Language::get('nc_colon').Language::get('currency').$goods_info['goods_freight']."</dd>
                  		<dd nctype=\"collectbtn_{$goods_info['goods_id']}\"><a href=\"javascript:void(0);\" onclick=\"javascript:collect_goods(\'{$goods_info['goods_id']}\',\'succ\',\'collectbtn_{$goods_info['goods_id']}\');\">".Language::get('sns_sharegoods_collect')."</a>&nbsp;&nbsp;(".$goods_info['goods_collect'].Language::get('sns_collecttip').")</dd>
                  	</dl>
                  </div>
             </div>";
			$insert_arr['trace_content'] = $content_str;
			$insert_arr['trace_addtime'] = time();
			$insert_arr['trace_state'] = '0';
			$insert_arr['trace_privacy'] = 0;
			$insert_arr['trace_commentcount'] = 0;
			$insert_arr['trace_copycount'] = 0;
			$result = $tracelog_model->tracelogAdd($insert_arr);
			$js = "var obj = $(\"#likestat_{$goods_info['goods_id']}\"); $(\"#likestat_{$goods_info['goods_id']}\").find('i').addClass('noaction');$(obj).find('a').addClass('noaction'); var countobj=$('[nc_type=\'likecount_{$goods_info['goods_id']}\']');$(countobj).html(parseInt($(countobj).text())+1);";
			showDialog(Language::get('nc_common_op_succ'),'','succ',$js);
		}else {
			showDialog(Language::get('nc_common_op_fail'),'','error');
		}
	}
コード例 #20
0
ファイル: control.php プロジェクト: Maplecms/shopnc-yhmall
 /**
  * 会员信息
  *
  * @return array
  */
 public function get_member_info()
 {
     //生成缓存的键值
     $hash_key = $this->master_id;
     if ($hash_key <= 0) {
         showMessage(L('wrong_argument'), '', '', 'error');
     }
     //写入缓存的数据
     $cachekey_arr = array('member_name', 'store_id', 'member_avatar', 'member_qq', 'member_email', 'member_ww', 'member_goldnum', 'member_points', 'available_predeposit', 'member_snsvisitnum', 'credit_arr', 'fan_count', 'attention_count');
     //先查找$hash_key缓存
     if ($_cache = rcache($hash_key, 'sns_member')) {
         foreach ($_cache as $k => $v) {
             $member_info[$k] = $v;
         }
     } else {
         $model = Model();
         $member_info = $model->table('member')->where(array('member_id' => $this->master_id))->find();
         if (empty($member_info)) {
             showMessage(L('wrong_argument'), 'index.php?act=member_snshome', '', 'error');
         }
         //粉丝数
         $fan_count = $model->table('sns_friend')->where(array('friend_tomid' => $this->master_id))->count();
         $member_info['fan_count'] = $fan_count;
         //关注数
         $attention_count = $model->table('sns_friend')->where(array('friend_frommid' => $this->master_id))->count();
         $member_info['attention_count'] = $attention_count;
         //兴趣标签
         $mtag_list = $model->table('sns_membertag,sns_mtagmember')->field('mtag_name')->on('sns_membertag.mtag_id = sns_mtagmember.mtag_id')->join('inner')->where(array('sns_mtagmember.member_id' => $this->master_id))->select();
         $tagname_array = array();
         if (!empty($mtag_list)) {
             foreach ($mtag_list as $val) {
                 $tagname_array[] = $val['mtag_name'];
             }
         }
         $member_info['tagname'] = $tagname_array;
         wcache($hash_key, $member_info, 'sns_member');
     }
     Tpl::output('member_info', $member_info);
     return $member_info;
 }
コード例 #21
0
 /**
  * 写入店铺商品分类缓存
  * @param int $store_id
  * @param array $info
  * @return boolean
  */
 private function _wStoreGoodsClassCache($store_id, $info)
 {
     return wcache($store_id, $info, 'store_goods_class');
 }
コード例 #22
0
 /**
  * 根据抢购编号查询商品评价信息 
  */
 public function getEvaluateGoodsInfoByCommonidID($goods_commonid)
 {
     $prefix = 'goods_common_evaluation';
     $info = rcache($goods_commonid, $prefix);
     if (empty($info)) {
         $info = array();
         $info['good_percent'] = 100;
         $info['normal_percent'] = 0;
         $info['bad_percent'] = 0;
         $info['good_star'] = 5;
         $info['all'] = 0;
         $info['good'] = 0;
         $info['normal'] = 0;
         $info['bad'] = 0;
         $condition = array();
         $condition['goods_commonid'] = $goods_commonid;
         $goods_list = Model('goods')->getGoodsList($condition, 'goods_id');
         if (!empty($goods_list)) {
             $goodsid_array = array();
             foreach ($goods_list as $value) {
                 $goodsid_array[] = $value['goods_id'];
             }
             $good = $this->where(array('geval_goodsid' => array('in', $goodsid_array), 'geval_scores' => array('in', '4,5')))->count();
             $info['good'] = $good;
             $normal = $this->where(array('geval_goodsid' => array('in', $goodsid_array), 'geval_scores' => array('in', '2,3')))->count();
             $info['normal'] = $normal;
             $bad = $this->where(array('geval_goodsid' => array('in', $goodsid_array), 'geval_scores' => array('in', '1')))->count();
             $info['bad'] = $bad;
             $info['all'] = $info['good'] + $info['normal'] + $info['bad'];
             if (intval($info['all']) > 0) {
                 $info['good_percent'] = intval($info['good'] / $info['all'] * 100);
                 $info['normal_percent'] = intval($info['normal'] / $info['all'] * 100);
                 $info['bad_percent'] = intval($info['bad'] / $info['all'] * 100);
                 $info['good_star'] = ceil($info['good'] / $info['all'] * 5);
             }
         }
         wcache($goods_commonid, $info, $prefix, 24 * 60);
         // 缓存周期1天。
     }
     return $info;
 }
コード例 #23
0
 /**
  * 积分兑换代金券
  */
 public function exchangeVoucher($template_info, $member_id, $member_name = '')
 {
     if (intval($member_id) <= 0 || empty($template_info)) {
         return array('state' => false, 'msg' => '参数错误');
     }
     //查询会员信息
     if (!$member_name) {
         $member_info = Model('member')->getMemberInfoByID($member_id);
         $member_name = $member_info['member_name'];
     }
     //添加代金券信息
     $insert_arr = array();
     $insert_arr['voucher_code'] = $this->get_voucher_code();
     $insert_arr['voucher_t_id'] = $template_info['voucher_t_id'];
     $insert_arr['voucher_title'] = $template_info['voucher_t_title'];
     $insert_arr['voucher_desc'] = $template_info['voucher_t_desc'];
     $insert_arr['voucher_start_date'] = time();
     $insert_arr['voucher_end_date'] = $template_info['voucher_t_end_date'];
     $insert_arr['voucher_price'] = $template_info['voucher_t_price'];
     $insert_arr['voucher_limit'] = $template_info['voucher_t_limit'];
     $insert_arr['voucher_store_id'] = $template_info['voucher_t_store_id'];
     $insert_arr['voucher_state'] = 1;
     $insert_arr['voucher_active_date'] = time();
     $insert_arr['voucher_owner_id'] = $member_id;
     $insert_arr['voucher_owner_name'] = $member_name;
     //扣除会员积分
     $points_arr['pl_memberid'] = $member_id;
     $points_arr['pl_membername'] = $member_name;
     $points_arr['pl_points'] = -$template_info['voucher_t_points'];
     $points_arr['point_ordersn'] = $insert_arr['voucher_code'];
     $points_arr['pl_desc'] = L('home_voucher') . $insert_arr['voucher_code'] . L('points_pointorderdesc');
     Model('points')->savePointsLog('app', $points_arr, true);
     $result = $this->table('voucher')->insert($insert_arr);
     if ($result) {
         //代金券模板的兑换数增加
         $this->editVoucherTemplate(array('voucher_t_id' => $template_info['voucher_t_id']), array('voucher_t_giveout' => array('exp', 'voucher_t_giveout+1')));
         wcache($member_id, array('voucher_count' => array('exp', 'voucher_count+1')), 'm_voucher');
         return array('state' => true, 'msg' => '兑换成功');
     } else {
         return array('state' => false, 'msg' => '兑换失败');
     }
 }
コード例 #24
0
 /**
  * 专题可用项目列表(用于前台显示仅显示可用项目)
  * @param int $special_id
  *
  */
 public function getMbSpecialItemUsableListByID($special_id)
 {
     $prefix = 'mb_special';
     $item_list = rcache($special_id, $prefix);
     //缓存有效
     if (!empty($item_list)) {
         return unserialize($item_list['special']);
     }
     //缓存无效查库并缓存
     $condition = array();
     $condition['special_id'] = $special_id;
     $condition['item_usable'] = self::SPECIAL_ITEM_USABLE;
     $item_list = $this->_getMbSpecialItemList($condition);
     if (!empty($item_list)) {
         $new_item_list = array();
         foreach ($item_list as $value) {
             //处理图片
             $item_data = $this->_formatMbSpecialData($value['item_data'], $value['item_type']);
             $new_item_list[] = array($value['item_type'] => $item_data);
         }
         $item_list = $new_item_list;
     }
     $cache = array('special' => serialize($item_list));
     wcache($special_id, $cache, $prefix);
     return $item_list;
 }
コード例 #25
0
 /**
  * 写入商品推荐搭配缓存
  * @param int $goods_id
  * @param array $array
  * @return boolean
  */
 private function _wGoodsComboCache($goods_id, $array)
 {
     return wcache($goods_id, $array, 'goods_combo', 60);
 }
コード例 #26
0
ファイル: goods.php プロジェクト: noikiy/ecmall
 /**
  * 单个商品信息页
  *
  */
 public function indexOp()
 {
     if (empty($_GET['goods_id'])) {
         showMessage(Language::get('miss_argument'), '', 'html', 'error');
     }
     //"缺少参数:商品编号"
     $goods_id = intval($_GET['goods_id']);
     $model_store_goods = Model('goods');
     //$goods_array		= $model_store_goods->getGoods(array('goods_id'=>intval($_GET['goods_id'])),'','goods.*,goods_spec.spec_goods_storage');
     $goods_array = $model_store_goods->where(array('goods_id' => intval($_GET['goods_id'])))->find();
     // 验证商品是否存在
     if (empty($goods_array) || $goods_array['goods_store_state'] == 1) {
         showMessage(Language::get('goods_index_no_goods'), '', 'html', 'error');
     }
     //获取店铺信息
     $store_info = $this->getStoreInfo($goods_array['store_id']);
     $_GET['id'] = $goods_array['store_id'];
     //得到商品规格
     $spec_array = $model_store_goods->getSpecGoods($goods_array['goods_id']);
     if (empty($spec_array)) {
         showMessage(Language::get('goods_index_no_goods'), '', 'html', 'error');
     }
     if (!empty($spec_array) && is_array($spec_array)) {
         foreach ($spec_array as $key => $val) {
             $s_array = unserialize($val['spec_goods_spec']);
             $val['spec_goods_spec'] = '';
             if (!empty($s_array) && is_array($s_array)) {
                 foreach ($s_array as $k => $v) {
                     $val['spec_goods_spec'] .= "'" . $k . "',";
                 }
             }
             $val['spec_goods_spec'] = rtrim($val['spec_goods_spec'], ',');
             //将商品默认规格的库存复制到商品数组中
             if ($val['spec_id'] == $goods_array['spec_id']) {
                 $goods_array['spec_goods_storage'] = $val['spec_goods_storage'];
             }
             $spec_array[$key] = $val;
         }
     }
     $goods_array['goods_spec'] = unserialize($goods_array['goods_spec']);
     $goods_array['spec_name'] = unserialize($goods_array['spec_name']);
     $goods_array['goods_attr'] = unserialize($goods_array['goods_attr']);
     $goods_array['goods_col_img'] = unserialize($goods_array['goods_col_img']);
     // 规格图片
     $model = Model();
     //该model为公用model实例
     //商品受关注次数加1
     $_times = cookie('tm_visit_product');
     if (empty($_times)) {
         $model->table('goods')->where(array('goods_id' => $goods_id))->attr('LOW_PRIORITY')->update(array('goods_click' => array('exp', 'goods_click+1')));
         setNcCookie('tm_visit_product', 1);
         $goods_array['goods_click'] = intval($goods_array['goods_click']) + 1;
     }
     Tpl::output('spec_array', $spec_array);
     Tpl::output('spec_count', count($goods_array['goods_spec']));
     Tpl::output('goods_spec', $goods_array['goods_spec']);
     Tpl::output('goods_col_img', $goods_array['goods_col_img']);
     //生成缓存的键值
     $hash_key = $goods_array['goods_id'];
     //先查找$hash_key缓存
     $cachekey_arr = array('likenum', 'sharenum', 'brand_name');
     if ($_cache = rcache($hash_key, 'product')) {
         foreach ($_cache as $k => $v) {
             $goods_array[$k] = $v;
         }
     } else {
         //查询SNS中该商品的信息
         $snsgoodsinfo = $model->table('sns_goods')->where(array('snsgoods_goodsid' => $goods_array['goods_id']))->find();
         $goods_array['likenum'] = $snsgoodsinfo['snsgoods_likenum'];
         $goods_array['sharenum'] = $snsgoodsinfo['snsgoods_sharenum'];
         //得到商品品牌
         $brand_array = $model->table('brand')->where(array('brand_id' => $goods_array['brand_id'], 'brand_apply' => '1'))->find();
         $goods_array['brand_name'] = $brand_array['brand_name'];
         $data = array();
         if (!empty($goods_array)) {
             foreach ($goods_array as $k => $v) {
                 if (in_array($k, $cachekey_arr)) {
                     $data[$k] = $v;
                 }
             }
         }
         //缓存商品信息
         wcache($hash_key, $data, 'product');
     }
     //Tpl::output('snsgoodsinfo', $snsgoodsinfo);
     //Tpl::output('brand',$brand_array);
     //检查是否为店主本人
     $store_self = false;
     if (!empty($_SESSION['store_id'])) {
         if ($goods_array['store_id'] == $_SESSION['store_id']) {
             $store_self = true;
         }
     }
     Tpl::output('store_self', $store_self);
     //商品多图
     $desc_image = explode(',', $goods_array['goods_image_more']);
     if ($goods_array['goods_image_more'] == '') {
         //商品多图与淘宝导入和2.0兼容
         $desc_image = $model_store_goods->getListImageGoods(array('image_store_id' => $goods_array['store_id'], 'item_id' => $goods_array['goods_id'], 'image_type' => 2));
         $image_key = 0;
         if (!empty($desc_image) && is_array($desc_image)) {
             //将封面图放到第一位显示
             $goods_image_1 = $goods_array['goods_image'];
             //封面图
             foreach ($desc_image as $key => $val) {
                 if ($goods_image_1 == $val['thumb_small']) {
                     $image_key = $key;
                     break;
                 }
             }
             if ($image_key > 0) {
                 //将封面图放到第一位显示
                 $desc_image_0 = $desc_image[0];
                 $desc_image[0] = $desc_image[$image_key];
                 $desc_image[$image_key] = $desc_image_0;
             }
             $image_array = array();
             foreach ($desc_image as $key => $val) {
                 $image_array[] = $val['file_thumb'];
             }
             $desc_image = $image_array;
         }
     }
     //如果使用运费模板
     if ($goods_array['transport_id'] > 0) {
         //取得三种运送方式默认运费
         $model_transport = Model('transport');
         $transport = $model_transport->getExtendList(array('transport_id' => $goods_array['transport_id'], 'is_default' => 1));
         if (!empty($transport) && is_array($transport)) {
             foreach ($transport as $v) {
                 $goods_array[$v['type'] . "_price"] = $v['sprice'];
             }
         }
     }
     Tpl::output('goods', $goods_array);
     Tpl::output('goods_image', $desc_image[0]);
     Tpl::output('desc_image', $desc_image);
     //输出一级地区
     $area_list = array(1 => '北京', 2 => '天津', 3 => '河北', 4 => '山西', 5 => '内蒙古', 6 => '辽宁', 7 => '吉林', 8 => '黑龙江', 9 => '上海', 10 => '江苏', 11 => '浙江', 12 => '安徽', 13 => '福建', 14 => '江西', 15 => '山东', 16 => '河南', 17 => '湖北', 18 => '湖南', 19 => '广东', 20 => '广西', 21 => '海南', 22 => '重庆', 23 => '四川', 24 => '贵州', 25 => '云南', 26 => '西藏', 27 => '陕西', 28 => '甘肃', 29 => '青海', 30 => '宁夏', 31 => '新疆', 32 => '台湾', 33 => '香港', 34 => '澳门', 35 => '海外');
     if (strtoupper(CHARSET) == 'GBK') {
         $area_list = Language::getGBK($area_list);
     }
     Tpl::output('area_list', $area_list);
     //优先得到推荐商品
     $goods_commend_list = $model_store_goods->getGoods(array('store_id' => $goods_array['store_id'], 'goods_id_diff' => intval($_GET['goods_id']), 'goods_show' => 1, 'goods_commend' => 1, 'order' => 'goods_commend desc', 'limit' => '0,4'), '', 'goods.goods_id,goods.goods_name,goods.goods_image,goods.store_id,goods.goods_store_price', 'goods');
     Tpl::output('goods_commend', $goods_commend_list);
     /**
      * 生成浏览过产品的cookie
      */
     $cookievalue = $goods_id . '-' . $goods_array['store_id'];
     if (cookie('viewed_goods')) {
         $string_viewed_goods = cookie('viewed_goods');
         if (get_magic_quotes_gpc()) {
             $string_viewed_goods = stripslashes($string_viewed_goods);
         }
         //去除斜杠
         $vg_ca = @unserialize($string_viewed_goods);
         $sign = true;
         if (!empty($vg_ca) && is_array($vg_ca)) {
             foreach ($vg_ca as $vk => $vv) {
                 if ($vv == $cookievalue) {
                     $sign = false;
                 }
             }
         } else {
             $vg_ca = array();
         }
         if ($sign) {
             if (count($vg_ca) >= 4) {
                 $vg_ca[] = $cookievalue;
                 array_shift($vg_ca);
             } else {
                 $vg_ca[] = $cookievalue;
             }
         }
     } else {
         $vg_ca[] = $cookievalue;
     }
     $vg_ca = serialize($vg_ca);
     setNcCookie('viewed_goods', $vg_ca);
     //团购活动
     $group_flag = FALSE;
     if (intval($goods_array['group_flag']) === 1) {
         $group_list = $this->get_group_list($goods_id);
         if (!empty($group_list) && is_array($group_list)) {
             $current_time = time();
             foreach ($group_list as $group) {
                 if (intval($group['start_time']) < $current_time && intval($group['end_time']) > $current_time) {
                     if (intval($group['state']) === 3) {
                         if ($group['def_quantity'] < $group['max_num']) {
                             $group_flag = TRUE;
                             Tpl::output('group_info', $group);
                             break;
                         }
                     }
                 }
             }
         } else {
             //没有新的团购活动,取消商品团购标志
             $model_store_goods->updateGoods(array('group_flag' => 0), $goods_id);
         }
     }
     Tpl::output('group_flag', $group_flag);
     //限时折扣
     $xianshi_flag = FALSE;
     $start_flag = FALSE;
     $goods_xianshi_flag = FALSE;
     if (intval($GLOBALS['setting_config']['promotion_allow']) === 1) {
         if (!$group_flag && intval($goods_array['xianshi_flag']) === 1) {
             $xianshi_goods = $this->get_xianshi_goods($goods_id);
             if (!empty($xianshi_goods) && intval($xianshi_goods['state']) === self::XIANSHI_GOODS_STATE_NORMAL) {
                 $xianshi_id = $xianshi_goods['xianshi_id'];
                 $model_xianshi = Model('p_xianshi');
                 $xianshi_info = $model_xianshi->getOne($xianshi_id);
                 if (!empty($xianshi_info)) {
                     if (intval($xianshi_info['state']) === self::XIANSHI_STATE_PUBLISHED) {
                         $current_time = time();
                         if (intval($xianshi_info['end_time']) > $current_time) {
                             $xianshi_flag = TRUE;
                             if (intval($xianshi_info['start_time']) < $current_time) {
                                 $start_flag = TRUE;
                             }
                             Tpl::output('xianshi_info', $xianshi_info);
                             $xianshi_goods['discount'] /= 10;
                             Tpl::output('xianshi_goods', $xianshi_goods);
                         } else {
                             //更新过期限时折扣状态
                             $model_xianshi->update(array('state' => self::XIANSHI_STATE_END), array('xianshi_id' => $xianshi_id));
                             $goods_xianshi_flag = TRUE;
                         }
                     } else {
                         $goods_xianshi_flag = TRUE;
                     }
                 }
             } else {
                 $goods_xianshi_flag = TRUE;
             }
         }
     } else {
         if (intval($goods_array['xianshi_flag']) === 1) {
             $goods_xianshi_flag = TRUE;
         }
     }
     //没有限时折扣活动,取消限时折扣标志
     if ($goods_xianshi_flag) {
         $model_store_goods->updateGoods(array('xianshi_flag' => 0), $goods_id);
     }
     Tpl::output('xianshi_flag', $xianshi_flag);
     Tpl::output('start_flag', $start_flag);
     //如果不是团购和限时折扣输出满就送活动
     if (intval($GLOBALS['setting_config']['promotion_allow']) === 1) {
         if ($group_flag || $xianshi_flag) {
             Tpl::output('mansong_flag', FALSE);
         } else {
             $this->output_mansong($goods_array['store_id']);
         }
     } else {
         Tpl::output('mansong_flag', FALSE);
     }
     Tpl::output('page', 'goods');
     $seo_param = array();
     $seo_param['name'] = $goods_array['goods_name'];
     $seo_param['key'] = $goods_array['goods_keywords'];
     $seo_param['description'] = $goods_array['goods_description'];
     Model('seo')->type('product')->param($seo_param)->show();
     Tpl::showpage('goods');
 }
コード例 #27
0
ファイル: control.php プロジェクト: noikiy/ecmall
 protected function get_member_detail_info($member_info)
 {
     $member_id = $member_info['member_id'];
     if ($member_id <= 0) {
         header("location: " . MICROSHOP_SITEURL);
         exit;
     }
     $cachekey_arr = array("member_name", "store_id", "member_avatar", "member_qq", "member_email", "member_msn", "member_ww", "member_goldnum", "member_points", "available_predeposit", "member_snsvisitnum", "credit_arr", "fan_count", "attention_count");
     if ($_cache = rcache($member_id, "sns_member")) {
         foreach ($_cache as $k => $v) {
             $member_info[$k] = $v;
         }
         return $member_info;
     }
     $model = model();
     $member_info['credit_arr'] = getcreditarr(intval($member_info['member_credit']));
     $fan_count = $model->table("sns_friend")->where(array("friend_tomid" => $member_id))->count();
     $member_info['fan_count'] = $fan_count;
     $attention_count = $model->table("sns_friend")->where(array("friend_frommid" => $member_id))->count();
     $member_info['attention_count'] = $attention_count;
     $mtag_list = $model->table("sns_membertag,sns_mtagmember")->field("mtag_name")->on("sns_membertag.mtag_id = sns_mtagmember.mtag_id")->join("inner")->where(array("sns_mtagmember.member_id" => $member_id))->select();
     $tagname_array = array();
     if (!empty($mtag_list)) {
         foreach ($mtag_list as $val) {
             $tagname_array[] = $val['mtag_name'];
         }
     }
     $member_info['tagname'] = $tagname_array;
     wcache($member_id, $member_info, "sns_member");
     return $member_info;
 }
コード例 #28
0
 /**
  * 写入商品抢购缓存
  * @param int $goods_commonid
  * @param array $info
  * @return boolean
  */
 private function _wGoodsGroupbuyCache($goods_commonid, $info)
 {
     return wcache($goods_commonid, $info, 'goods_groupbuy');
 }
コード例 #29
0
 /**
  * 更新礼品浏览次数
  */
 public function editPointProdViewnum($prod_id)
 {
     if (intval($prod_id) <= 0) {
         return array('state' => false, 'msg' => '参数错误');
     }
     $viewnum = 0;
     //最新浏览次数
     $cache_arr = array();
     $tmptime = time();
     if (!C('cache_open')) {
         //直接更新数据库浏览次数
         $this->editPointProd(array('pgoods_view' => array('exp', 'pgoods_view+1')), array('pgoods_id' => $prod_id));
     } else {
         //通过缓存记录浏览次数
         $prod_info = rcache($prod_id, 'pointprod', 'pgoods_view,view_updatetime');
         if (empty($prod_info)) {
             //如果兑换礼品的浏览次数缓存不存在,则查询兑换礼品数据库信息,建立缓存
             //查询兑换礼品信息
             $prod_info = $this->getPointProdInfo(array('pgoods_id' => $prod_id), 'pgoods_view');
             $viewnum = intval($prod_info['pgoods_view']) + 1;
             wcache($prod_id, array('pgoods_view' => $viewnum, 'view_updatetime' => $tmptime), 'pointprod');
         } else {
             $viewnum = intval($prod_info['pgoods_view']) + 1;
             if ($prod_info['view_updatetime'] + 3600 < $tmptime) {
                 //如果缓存时间超出1小时,则将更新进入数据库,时间初始为当前时间
                 $this->editPointProd(array('pgoods_view' => $viewnum), array('pgoods_id' => $prod_id));
                 wcache($prod_id, array('pgoods_view' => $viewnum, 'view_updatetime' => $tmptime), 'pointprod');
             } else {
                 //如果缓存时间未超出1小时,则更新浏览次数
                 wcache($prod_id, array('pgoods_view' => $viewnum), 'pointprod');
             }
         }
     }
     return array('state' => true);
 }
コード例 #30
0
 /**
  * 写入店铺关联板式缓存缓存
  * @param int $plate_id
  * @param array $info
  * @return boolean
  */
 private function _wStorePlateCache($plate_id, $info)
 {
     return wcache($plate_id, $info, 'store_plate');
 }