|
@@ -95,7 +95,7 @@ class stbonus extends stat_base
|
|
|
{
|
|
|
$this->calc_time(self::cur_date_type);
|
|
|
|
|
|
- $cond['send_start_date'] = array('between',array($this->mStartm,$this->mEndtm));
|
|
|
+ $cond['send_start_date'] = ['between',"{$this->mStartm},{$this->mEndtm}"];
|
|
|
$field = 'bonus_rate,
|
|
|
sum(total_amount) as all_total_amount,
|
|
|
sum(remain_amount) as all_remain_amount,
|
|
@@ -198,7 +198,7 @@ class stbonus extends stat_base
|
|
|
{
|
|
|
$this->calc_time(self::cur_date_type);
|
|
|
|
|
|
- $cond['send_start_date'] = array('between',array($this->mStartm,$this->mEndtm));
|
|
|
+ $cond['send_start_date'] = ['between',"{$this->mStartm},{$this->mEndtm}"];
|
|
|
$cond['sender_id'] = self::admin_member_id;
|
|
|
$field = 'bonus_rate,
|
|
|
sum(total_amount) as admin_total_amount,
|
|
@@ -253,4 +253,141 @@ class stbonus extends stat_base
|
|
|
return $this->save($fEdit,$datas);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public function discount_self()
|
|
|
+ {
|
|
|
+ $this->calc_time(self::cur_date_type);
|
|
|
+
|
|
|
+ $mod_member = Model('member');
|
|
|
+ $mod_order = Model('order');
|
|
|
+ $orders = $mod_order->where(array('order_state' => ['in',[20,30,40]],
|
|
|
+ 'payment_time' => ['between',"{$this->mStartm},{$this->mEndtm}"]))->field('bonus_rate,buyer_id')->limit(false)->select();
|
|
|
+
|
|
|
+ foreach ($orders as $order)
|
|
|
+ {
|
|
|
+ $member_id = $order['buyer_id'];
|
|
|
+ $discount = 0.00;
|
|
|
+ $rates = $order['bonus_rate'];
|
|
|
+ if(!empty($rates))
|
|
|
+ {
|
|
|
+ $rate_amount = unserialize($rates);
|
|
|
+ foreach ($rate_amount as $key => $val) {
|
|
|
+ $discount += $val;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $mod_member->editMember(['member_id' => $member_id],['discount_self_amount' => ['exp', "discount_self_amount + {$discount}"]]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function discount_invitee()
|
|
|
+ {
|
|
|
+ $this->calc_time(self::cur_date_type);
|
|
|
+
|
|
|
+ $mod_member = Model('member');
|
|
|
+ $mod_order = Model('order');
|
|
|
+ $orders = $mod_order->where(array('order_state' => ['in',[20,30,40]],
|
|
|
+ 'payment_time' => ['between',"{$this->mStartm},{$this->mEndtm}"]))->field('bonus_rate,buyer_id')->limit(false)->select();
|
|
|
+
|
|
|
+ foreach ($orders as $order)
|
|
|
+ {
|
|
|
+ $member_id = $order['buyer_id'];
|
|
|
+ $inviter_id = $this->inviter($mod_member,$member_id);
|
|
|
+ if($inviter_id == false) continue;
|
|
|
+
|
|
|
+ $discount = 0.00;
|
|
|
+ $rates = $order['bonus_rate'];
|
|
|
+ if(!empty($rates))
|
|
|
+ {
|
|
|
+ $rate_amount = unserialize($rates);
|
|
|
+ foreach ($rate_amount as $key => $val) {
|
|
|
+ $discount += $val;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $mod_member->editMember(['member_id' => $inviter_id],['discount_invitee_amount' => ['exp', "discount_invitee_amount + {$discount}"]]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function inviter($mod_member,$member_id)
|
|
|
+ {
|
|
|
+ $members = $mod_member->field('inviter_id')->where(['member_id' => $member_id])->limit(false)->select();
|
|
|
+ if(empty($members)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ return intval($members[0]['member_id']);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function init_discount_self()
|
|
|
+ {
|
|
|
+ $mod_member = Model('member');
|
|
|
+ $members = $mod_member->field('*')->limit(false)->select();
|
|
|
+ foreach ($members as $member)
|
|
|
+ {
|
|
|
+ $member_id = intval($member['member_id']);
|
|
|
+ $mod_order = Model('order');
|
|
|
+ $orders = $mod_order->where(['order_state' => ORDER_STATE_SUCCESS,'buyer_id' => $member_id])->field('bonus_rate')->limit(false)->select();
|
|
|
+
|
|
|
+ if(empty($orders)) continue;
|
|
|
+
|
|
|
+ $discount = 0.00;
|
|
|
+ foreach ($orders as $order)
|
|
|
+ {
|
|
|
+ $rates = $order['bonus_rate'];
|
|
|
+ if(!empty($rates))
|
|
|
+ {
|
|
|
+ $rate_amount = unserialize($rates);
|
|
|
+ foreach ($rate_amount as $key => $val) {
|
|
|
+ $discount += $val;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $mod_member->editMember(['member_id' => $member_id],['discount_self_amount' => $discount]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function invitees($mod_member,$member_id)
|
|
|
+ {
|
|
|
+ $members = $mod_member->field('member_id')->where(['inviter_id' => $member_id])->limit(false)->select();
|
|
|
+ if(empty($members)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = [];
|
|
|
+ foreach ($members as $member) {
|
|
|
+ $result[] = intval($member['member_id']);
|
|
|
+ }
|
|
|
+
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function init_discount_invitee()
|
|
|
+ {
|
|
|
+ $mod_member = Model('member');
|
|
|
+ $members = $mod_member->field('*')->limit(false)->select();
|
|
|
+ foreach ($members as $member)
|
|
|
+ {
|
|
|
+ $member_id = intval($member['member_id']);
|
|
|
+ $invitees = $this->invitees($mod_member,$member_id);
|
|
|
+ if($invitees == false) continue;
|
|
|
+
|
|
|
+ $mod_order = Model('order');
|
|
|
+ $orders = $mod_order->where(['order_state' => ORDER_STATE_SUCCESS,'buyer_id' => ['in',$invitees]])->field('bonus_rate')->limit(false)->select();
|
|
|
+
|
|
|
+ if(empty($orders)) continue;
|
|
|
+
|
|
|
+ $discount = 0.00;
|
|
|
+ foreach ($orders as $order)
|
|
|
+ {
|
|
|
+ $rates = $order['bonus_rate'];
|
|
|
+ if(!empty($rates))
|
|
|
+ {
|
|
|
+ $rate_amount = unserialize($rates);
|
|
|
+ foreach ($rate_amount as $key => $val) {
|
|
|
+ $discount += $val;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $mod_member->editMember(['member_id' => $member_id],['discount_invitee_amount' => $discount]);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|