|
@@ -21,14 +21,17 @@ class opgroup
|
|
|
private $mEndTm;
|
|
|
private $mGoods;
|
|
|
private $mRepeat;
|
|
|
+ private $mSpecialID;
|
|
|
|
|
|
- public function __construct($price,$options,$start,$end,$repeat)
|
|
|
+ public function __construct($price,$options,$start,$end,$repeat,$special_id)
|
|
|
{
|
|
|
$this->mPrice = $price;
|
|
|
$this->mOptions = $options;
|
|
|
$this->mStartTm = $start;
|
|
|
$this->mEndTm = $end;
|
|
|
$this->mRepeat = $repeat;
|
|
|
+ $this->mSpecialID;
|
|
|
+
|
|
|
$this->mGoods = [];
|
|
|
}
|
|
|
|
|
@@ -67,6 +70,20 @@ class opgroup
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function info($gid)
|
|
|
+ {
|
|
|
+ if(algorithm::binary_search($this->mGoods,$gid))
|
|
|
+ {
|
|
|
+ $result['special_id'] = $this->mSpecialID;
|
|
|
+ $price = $this->mPrice / 100;
|
|
|
+ $result['desc'] = "{$price}元任选{$this->mOptions}件";
|
|
|
+
|
|
|
+ return $result;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private function goods_num($gids,$gid_nums)
|
|
|
{
|
|
|
$num = 0;
|
|
@@ -151,6 +168,27 @@ class optional_goods
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function info($goods_id)
|
|
|
+ {
|
|
|
+ $gid = intval($goods_id);
|
|
|
+ if($gid <= 0) return false;
|
|
|
+
|
|
|
+ if(algorithm::binary_search($this->mAllGoods,$gid))
|
|
|
+ {
|
|
|
+ foreach ($this->mOpgroups as $group)
|
|
|
+ {
|
|
|
+ $info = $group->info($gid);
|
|
|
+ if($info != false) {
|
|
|
+ return $info;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public function match($gidnums)
|
|
|
{
|
|
|
$input_goods = $this->input_goods($gidnums);
|
|
@@ -222,7 +260,7 @@ class optional_goods
|
|
|
$type = $block['item_type'];
|
|
|
if($type == 'home1')
|
|
|
{
|
|
|
- $tmp_group = $this->add_group($block);
|
|
|
+ $tmp_group = $this->add_group($block,$special_id);
|
|
|
if($tmp_group != null) {
|
|
|
$cur_group = $tmp_group;
|
|
|
$this->mOpgroups[] = $cur_group;
|
|
@@ -257,7 +295,7 @@ class optional_goods
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private function add_group($block)
|
|
|
+ private function add_group($block,$special_id)
|
|
|
{
|
|
|
$items = $block['items'];
|
|
|
if(empty($items)) return null;
|
|
@@ -278,7 +316,7 @@ class optional_goods
|
|
|
if($group == null)
|
|
|
{
|
|
|
if($startm > 0 && $hours > 0 && $startm + 3600 * $hours > time()) {
|
|
|
- $group = new opgroup($price,$options,$startm,$startm + 3600 * $hours,$repeat);
|
|
|
+ $group = new opgroup($price,$options,$startm,$startm + 3600 * $hours,$repeat,$special_id);
|
|
|
}
|
|
|
}
|
|
|
return $group;
|