|
@@ -7,12 +7,13 @@
|
|
|
*/
|
|
|
require_once (BASE_ROOT_PATH . '/helper/field_helper.php');
|
|
|
require_once (BASE_ROOT_PATH . '/helper/model_helper.php');
|
|
|
+require_once (BASE_ROOT_PATH . '/helper/activity_helper.php');
|
|
|
|
|
|
class goods_helper
|
|
|
{
|
|
|
const fieldstr = 'goods_id,goods_commonid,store_id,brand_id,gc_id,goods_name,goods_price,goods_marketprice,goods_promotion_price,goods_jingle,
|
|
|
goods_image,goods_salenum,evaluation_good_star,evaluation_count,goods_storage,goods_storage_alarm,is_virtual,is_presell,
|
|
|
- is_fcode,have_gift,goods_mobile_name';
|
|
|
+ is_fcode,have_gift,goods_mobile_name,goods_spec';
|
|
|
public function __construct() {
|
|
|
}
|
|
|
|
|
@@ -34,19 +35,66 @@ class goods_helper
|
|
|
return $goods_list;
|
|
|
}
|
|
|
|
|
|
- public function get_summary($goods_ids)
|
|
|
+ //show_gid => 显示这个sku的详情
|
|
|
+ public function get_spu($common_id,$show_gid,&$err)
|
|
|
+ {
|
|
|
+ $err = errcode::Success;
|
|
|
+
|
|
|
+ $common_id = intval($common_id);
|
|
|
+ $mod = Model('goods');
|
|
|
+ $common_info = $mod->getGoodeCommonInfoByID($common_id);
|
|
|
+ if(empty($common_info)) {
|
|
|
+ $err = errcode::ErrParamter;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $goods_list = $mod->getGoodsOnlineList(array('goods_commonid' => $common_id),self::fieldstr);
|
|
|
+ if(empty($goods_list)) {
|
|
|
+ $err = errcode::ErrParamter;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $ret = array();
|
|
|
+ $gcommon = new goods_common($common_info,$goods_list,$show_gid);
|
|
|
+ $ret['common_info'] = $gcommon->format();
|
|
|
+
|
|
|
+ $ret_summary = $this->do_summary($goods_list,$related_goods);
|
|
|
+ $summary = $ret_summary['summary'];
|
|
|
+
|
|
|
+ if(!empty($related_goods)) {
|
|
|
+ $ret_related = $this->get_summary($related_goods,$x);
|
|
|
+ $summary = array_merge($summary,$ret_related['summary']);
|
|
|
+ }
|
|
|
+
|
|
|
+ $ret['goods_summary'] = $summary;
|
|
|
+ $ret['groupbuy'] = $ret_summary['groupbuy'];
|
|
|
+ $ret['limitime'] = $ret_summary['limitime'];
|
|
|
+ $ret['bundling'] = $ret_summary['bundling'];
|
|
|
+
|
|
|
+ return $ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function get_summary($goods_ids,&$related_goods)
|
|
|
{
|
|
|
$goods_list = Model('goods')->cls()->getGoodsOnlineList(array('goods_id' => array('in', $goods_ids)),self::fieldstr);
|
|
|
+ return $this->do_summary($goods_list,$related_goods);
|
|
|
+ }
|
|
|
|
|
|
+ private function do_summary($goods_list,&$related_goods)
|
|
|
+ {
|
|
|
+ $related_goods = array();
|
|
|
$summary_list = array();
|
|
|
foreach ($goods_list as $goods) {
|
|
|
$summary = new goods_summary($goods);
|
|
|
- $info = $summary->to_array($act_type,$act_id);
|
|
|
+ $info = $summary->format($act_type,$act_id);
|
|
|
array_push($summary_list,$info);
|
|
|
+ $related_goods = array_merge($related_goods,$summary->related_goods());
|
|
|
}
|
|
|
+ $related_goods = array_unique($related_goods);
|
|
|
|
|
|
$gbuys = array();
|
|
|
$ltimes = array();
|
|
|
+ $bundling = array();
|
|
|
foreach ($summary_list as $summary)
|
|
|
{
|
|
|
$act_id = intval($summary['act_id']);
|
|
@@ -66,6 +114,15 @@ class goods_helper
|
|
|
$ltimes[$act_id] = $info;
|
|
|
}
|
|
|
}
|
|
|
+ elseif($act_type == activity_helper::ACTIVITY_BUNDLING)
|
|
|
+ {
|
|
|
+ if(array_key_exists($act_id,$ltimes) == false) {
|
|
|
+ $info = activity\bundling::instance()->get_info($act_id,$goods_ids);
|
|
|
+ $bundling[$act_id] = $info;
|
|
|
+ $related_goods = array_merge($related_goods,$goods_ids);
|
|
|
+ $related_goods = array_unique($related_goods);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
$ret = array();
|
|
@@ -81,6 +138,11 @@ class goods_helper
|
|
|
array_push($ret['limitime'],$val);
|
|
|
}
|
|
|
|
|
|
+ $ret['bundling'] = array();
|
|
|
+ foreach ($bundling as $key => $val) {
|
|
|
+ array_push($ret['bundling'],$val);
|
|
|
+ }
|
|
|
+
|
|
|
return $ret;
|
|
|
}
|
|
|
|
|
@@ -90,31 +152,11 @@ class goods_helper
|
|
|
private function goods_list_extend($goods_list)
|
|
|
{
|
|
|
if(empty($goods_list)) return $goods_list;
|
|
|
- $commonid_array = array_column($goods_list,'goods_commonid');
|
|
|
- $goodsid_array = array_column($goods_list,'goods_commonid');
|
|
|
-
|
|
|
- //促销
|
|
|
- $groupbuy_list = Model('groupbuy')->getGroupbuyListByGoodsCommonIDString(implode(',', $commonid_array));
|
|
|
- $xianshi_list = Model('p_xianshi_goods')->getXianshiGoodsListByGoodsString(implode(',', $goodsid_array));
|
|
|
|
|
|
foreach ($goods_list as $key => &$value)
|
|
|
{
|
|
|
- //抢购
|
|
|
- if (isset($groupbuy_list[$value['goods_commonid']])) {
|
|
|
- $value['goods_price'] = $groupbuy_list[$value['goods_commonid']]['groupbuy_price'];
|
|
|
- $value['group_flag'] = true;
|
|
|
- } else {
|
|
|
- $value['group_flag'] = false;
|
|
|
- }
|
|
|
-
|
|
|
- //限时折扣
|
|
|
- if (isset($xianshi_list[$value['goods_id']]) && !$value['group_flag']) {
|
|
|
- $value['goods_price'] = $xianshi_list[$value['goods_id']]['xianshi_price'];
|
|
|
- $value['xianshi_flag'] = true;
|
|
|
- } else {
|
|
|
- $value['xianshi_flag'] = false;
|
|
|
- }
|
|
|
-
|
|
|
+ $value['group_flag'] = false;
|
|
|
+ $value['xianshi_flag'] = false;
|
|
|
//商品图片url
|
|
|
$value['goods_image_url'] = cthumb($value['goods_image'], 360, $value['store_id']);
|
|
|
$value['goods_state'] = 1;
|
|
@@ -127,30 +169,4 @@ class goods_helper
|
|
|
}
|
|
|
return $goods_list;
|
|
|
}
|
|
|
-
|
|
|
- private function parse_efficacy($goods_attr)
|
|
|
- {
|
|
|
- if(is_null($goods_attr)) return array();
|
|
|
-
|
|
|
- foreach ($goods_attr as $key => $val)
|
|
|
- {
|
|
|
- $attr_item['goods_attr_id'] = intval($key);
|
|
|
- $attr_item['goods_attr_name'] = $val['name'];
|
|
|
- if ($attr_item['goods_attr_name'] === '功效')
|
|
|
- {
|
|
|
- $goods_attr_value = array();
|
|
|
- foreach ($val as $id => $name)
|
|
|
- {
|
|
|
- if ($id !== 'name') {
|
|
|
- $val_item['value_id'] = intval($id);
|
|
|
- $val_item['value_name'] = $name;
|
|
|
- array_push($goods_attr_value, $val_item);
|
|
|
- }
|
|
|
- }
|
|
|
- $attr_item['goods_attr_value'] = $goods_attr_value;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- return $attr_item;
|
|
|
- }
|
|
|
}
|