|
@@ -870,10 +870,10 @@ class StoreOrder extends BaseModel
|
|
|
if ($order['suit'] <= 0) return true;
|
|
|
$userInfo = User::getUserInfo($order['uid']);
|
|
|
$spread = User::getUserInfo($userInfo['spread_uid']);
|
|
|
- if (StoreOrder::where('uid', $order['uid'])->where('paid', 1)->where('refund_status', 0)->where('is_del', 0)->where('is_system_del', 0)
|
|
|
- ->where('id', '<>', $order['id'])->where('suit', '>', 0)->find()) {
|
|
|
- $spread = $userInfo;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
$re = true;
|
|
|
$res = true;
|
|
|
while ($spread) {
|
|
@@ -2492,10 +2492,10 @@ class StoreOrder extends BaseModel
|
|
|
|
|
|
$userInfo = User::getUserInfo($order['uid']);
|
|
|
$spread = User::getUserInfo($userInfo['spread_uid']);
|
|
|
- if (StoreOrder::where('uid', $order['uid'])->where('paid', 1)->where('refund_status', 0)->where('is_del', 0)->where('is_system_del', 0)
|
|
|
- ->where('id', '<>', $order['id'])->where('suit', '>', 0)->find()) {
|
|
|
- $spread = $userInfo;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
$cartInfo = StoreOrderCartInfo::whereIn('cart_id', $order['cart_id'])->column('cart_info');
|
|
|
$suit = 0;
|
|
|
$suit_exit = 0;
|
|
@@ -2536,9 +2536,16 @@ class StoreOrder extends BaseModel
|
|
|
|
|
|
$send = 0;
|
|
|
$send_normal = 0;
|
|
|
+ $layer = 1;
|
|
|
+ $layer_award = sys_data('suit_sub_award');
|
|
|
+ $layer_award_real = [];
|
|
|
+ foreach ($layer_award as $v) {
|
|
|
+ $layer_award_real[$v['layer']] = $v;
|
|
|
+ }
|
|
|
while ($spread) {
|
|
|
$group_level = SystemGroupLevel::get($spread['group_level']);
|
|
|
$award_level = SystemGroupLevel::get($spread['award_level']);
|
|
|
+ $balance = $spread['brokerage_price'];
|
|
|
if ($suit) {
|
|
|
$award_group = $group_level['suit_award'] ?? 0;
|
|
|
$award_award = $award_level['suit_award'] ?? 0;
|
|
@@ -2553,8 +2560,9 @@ class StoreOrder extends BaseModel
|
|
|
$real_send = bcsub($brokeragePrice, $send, 2);
|
|
|
if ($real_send > 0) {
|
|
|
$mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
|
|
|
- $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
|
|
|
+ $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($balance, $real_send, 2), $mark);
|
|
|
$res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
|
|
|
+ $balance = bcadd($balance, $real_send, 2);
|
|
|
$send = $brokeragePrice;
|
|
|
}
|
|
|
}
|
|
@@ -2564,8 +2572,9 @@ class StoreOrder extends BaseModel
|
|
|
$real_send = bcsub($brokeragePrice, $send, 2);
|
|
|
if ($real_send > 0) {
|
|
|
$mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
|
|
|
- $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
|
|
|
+ $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($balance, $real_send, 2), $mark);
|
|
|
$res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
|
|
|
+ $balance = bcadd($balance, $real_send, 2);
|
|
|
$send = $brokeragePrice;
|
|
|
}
|
|
|
}
|
|
@@ -2574,7 +2583,7 @@ class StoreOrder extends BaseModel
|
|
|
$real_send = bcsub($brokeragePrice, $send, 2);
|
|
|
if ($real_send > 0) {
|
|
|
$mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
|
|
|
- $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark, 0, $big);
|
|
|
+ $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($balance, $real_send, 2), $mark, 0, $big);
|
|
|
$send = $brokeragePrice;
|
|
|
}
|
|
|
}
|
|
@@ -2604,6 +2613,37 @@ class StoreOrder extends BaseModel
|
|
|
|
|
|
|
|
|
}
|
|
|
+ $lay_award = $layer_award_real[$layer] ?? null;
|
|
|
+ if ($lay_award) {
|
|
|
+ $sps = User::where('spread_uid', $spread['uid'])->column('uid');
|
|
|
+ $count = 0;
|
|
|
+ foreach ($sps as $vvv) {
|
|
|
+ if (StoreOrder::where('uid', $vvv)->where('paid', 1)->where('refund_status', 0)->where('is_del', 0)->where('is_system_del', 0)
|
|
|
+ ->where('id', '<>', $order['id'])->where('suit', '>', 0)->find()) {
|
|
|
+ $count++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($count >= $lay_award['recommend']) {
|
|
|
+ if ($suit) {
|
|
|
+ $brokeragePrice = bcmul($lay_award['award'], $suit, 2);
|
|
|
+ if ($brokeragePrice > 0) {
|
|
|
+ $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得见点奖励' . $brokeragePrice;
|
|
|
+ $res = $res && UserBill::income('套装见点奖', $spread['uid'], 'now_money', 'brokerage', $brokeragePrice, $order['id'], bcadd($balance, $brokeragePrice, 2), $mark);
|
|
|
+ $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $brokeragePrice)->update();
|
|
|
+ $balance = bcadd($balance, $brokeragePrice, 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($order['use_integral'] > 0) {
|
|
|
+ $brokeragePrice = bcmul(bcdiv($lay_award['integral_award'], 100, 4), bcsub(bcsub($order['total_price'], $suit_price, 2), $extra_price, 2), 2);
|
|
|
+ if ($brokeragePrice > 0) {
|
|
|
+ $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买积分商品,获得见点奖励' . $brokeragePrice;
|
|
|
+ $res = $res && UserBill::income('见点奖', $spread['uid'], 'now_money', 'brokerage', $brokeragePrice, $order['id'], bcadd($balance, $brokeragePrice, 2), $mark);
|
|
|
+ $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $brokeragePrice)->update();
|
|
|
+ $balance = bcadd($balance, $brokeragePrice, 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if (!$group_level) {
|
|
|
$group_award_basic = sys_config('group_award_basic', 0);
|
|
@@ -2618,13 +2658,14 @@ class StoreOrder extends BaseModel
|
|
|
$real_send = bcsub($brokeragePrice, $send_normal, 2);
|
|
|
if ($real_send > 0) {
|
|
|
$mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买' . ($order['use_integral'] > 0 ? '积分' : '普通') . '商品,获得极差奖励' . $real_send;
|
|
|
- $res = $res && UserBill::income('极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
|
|
|
+ $res = $res && UserBill::income('极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($balance, $real_send, 2), $mark);
|
|
|
$res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
|
|
|
$send_normal = $brokeragePrice;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$spread = User::getUserInfo($spread['spread_uid']);
|
|
|
+ $layer++;
|
|
|
}
|
|
|
return $res;
|
|
|
}
|