|
@@ -20,8 +20,8 @@ class send_manager
|
|
|
{
|
|
|
public static $stInstance;
|
|
|
private $mGoodsBlock;
|
|
|
- private $mConfirmGoods; //确认收获后赠送的F码商品。
|
|
|
- private $mPayGoods; //支付后送的F码商品。
|
|
|
+ private $mNormalGoods;
|
|
|
+ private $mAdditionGoods;
|
|
|
|
|
|
private function __construct()
|
|
|
{
|
|
@@ -42,7 +42,7 @@ class send_manager
|
|
|
|
|
|
private function init()
|
|
|
{
|
|
|
- $this->mConfirmGoods = [];
|
|
|
+ $this->mNormalGoods = [];
|
|
|
$this->mGoodsBlock = [];
|
|
|
|
|
|
global $config;
|
|
@@ -67,41 +67,62 @@ class send_manager
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- krsort($this->mConfirmGoods);
|
|
|
+ krsort($this->mNormalGoods);
|
|
|
}
|
|
|
|
|
|
private function add($amount,$item,$block)
|
|
|
{
|
|
|
global $config;
|
|
|
- $pay_gids = $config['autosend_fcodes']['pay_goodsids'];
|
|
|
+ $add_gids = $config['autosend_fcodes']['additional_goodsids'];
|
|
|
|
|
|
$goods_id = intval($item['data']);
|
|
|
if($goods_id <= 0) return;
|
|
|
|
|
|
- if(!empty($pay_gids) && is_array($pay_gids) && in_array($goods_id,$pay_gids))
|
|
|
+ if(!empty($add_gids) && is_array($add_gids) && in_array($goods_id,$add_gids))
|
|
|
{
|
|
|
- if(array_key_exists($amount,$this->mConfirmGoods) == false) {
|
|
|
- $this->mPayGoods[$amount] = [];
|
|
|
+ if(array_key_exists($amount,$this->mNormalGoods) == false) {
|
|
|
+ $this->mAdditionGoods[$amount] = [];
|
|
|
}
|
|
|
- $this->mPayGoods[$amount][] = $goods_id;
|
|
|
+ $this->mAdditionGoods[$amount][] = $goods_id;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if(array_key_exists($amount,$this->mConfirmGoods) == false) {
|
|
|
- $this->mConfirmGoods[$amount] = [];
|
|
|
+ if(array_key_exists($amount,$this->mNormalGoods) == false) {
|
|
|
+ $this->mNormalGoods[$amount] = [];
|
|
|
}
|
|
|
- $this->mConfirmGoods[$amount][] = $goods_id;
|
|
|
+ $this->mNormalGoods[$amount][] = $goods_id;
|
|
|
}
|
|
|
$this->mGoodsBlock[$goods_id] = $block;
|
|
|
}
|
|
|
|
|
|
- public function fetch_pay($amount)
|
|
|
+ public function fetch($amount,$pay_sn)
|
|
|
+ {
|
|
|
+ $normal = $this->fetch_normal($amount,$pay_sn);
|
|
|
+ $addition = $this->fetch_addition($amount,$pay_sn);
|
|
|
+
|
|
|
+ $result = [];
|
|
|
+ if(empty($normal)) {
|
|
|
+ return $addition;
|
|
|
+ }
|
|
|
+ if(empty($addition)) {
|
|
|
+ return $normal;
|
|
|
+ }
|
|
|
+
|
|
|
+ $result['banner'][] = $normal['banner'];
|
|
|
+ $result['banner'][] = $addition['banner'];
|
|
|
+ $result['fcode'][] = $normal['fcode'];
|
|
|
+ $result['fcode'][] = $addition['fcode'];
|
|
|
+
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function fetch_addition($amount,$pay_sn)
|
|
|
{
|
|
|
$amount = intval($amount);
|
|
|
if($amount <= 0) return false;
|
|
|
|
|
|
$gids = [];
|
|
|
- foreach ($this->mPayGoods as $key => $goods_ids)
|
|
|
+ foreach ($this->mAdditionGoods as $key => $goods_ids)
|
|
|
{
|
|
|
if(empty($goods_ids)) continue;
|
|
|
|
|
@@ -116,17 +137,17 @@ class send_manager
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- $result = $this->validate_one($gids);
|
|
|
+ $result = $this->validate_one($gids,$pay_sn);
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
- public function fetch_confirm($amount)
|
|
|
+ public function fetch_normal($amount,$pay_sn)
|
|
|
{
|
|
|
$amount = intval($amount);
|
|
|
if($amount <= 0) return false;
|
|
|
|
|
|
$gids = [];
|
|
|
- foreach ($this->mConfirmGoods as $key => $goods_ids)
|
|
|
+ foreach ($this->mNormalGoods as $key => $goods_ids)
|
|
|
{
|
|
|
if(empty($goods_ids)) continue;
|
|
|
|
|
@@ -141,11 +162,11 @@ class send_manager
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- $result = $this->validate_one($gids);
|
|
|
+ $result = $this->validate_one($gids,$pay_sn);
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
- private function validate_one($gids)
|
|
|
+ private function validate_one($gids,$pay_sn)
|
|
|
{
|
|
|
$mod_goods = Model('goods');
|
|
|
$goods_list = $mod_goods->getGoodsOnlineList(array('goods_id' => array('in', $gids),'goods_storage' => array('gt',0),'is_fcode' => 1));
|
|
@@ -169,7 +190,7 @@ class send_manager
|
|
|
$oper = new operator($commonid,$batch_code);
|
|
|
|
|
|
if($oper->grabed()) continue;
|
|
|
- $fcode = $oper->grab();
|
|
|
+ $fcode = $oper->lock($pay_sn);
|
|
|
if($fcode != false) {
|
|
|
return ['fcode' => $fcode,'banner' => $block];
|
|
|
}
|