where(['parent_id' => $user['user_id'], 'mall_id' => $user['mall_id'], 'status' => StatusEnum::ENABLED]) ->Andwhere(['>=', 'level', $system['level']]) ->count(); } catch (\Exception $e) { return false; } if ($pushNum < $system['num']) { return false; } return true; } /** * 消费股东分红限制 * @param $user * @param array $system * @return true */ protected static function consumptionRestrict($user, array $system): bool { try { $userIds = User::find() ->select(['id']) ->where(['parent_id' => $user['user_id'], 'mall_id' => $user['mall_id'], 'status' => StatusEnum::ENABLED]) ->column(); if (empty($userIds)) return false; $userMoney = UserStatisticsTotal::find() ->select('sum(pay_money) as pay_money, sum(refund_order_money) as refund_order_money, sum(finish_order_money) as finish_order_money') ->where(['user_id' => $userIds, 'mall_id' => $user['mall_id']]) ->asArray() ->one(); } catch (\Exception $e) { return false; } // 订单支付 // 支付金额等于付款金额减去退款金额 $money = bcsub($userMoney['pay_money'], $userMoney['refund_order_money'], 2); if ($system['order_type'] === self::ORDER_TYPE_PAY && $money < $system['money']) { return false; } // 订单完成 if ($system['order_type'] === self::ORDER_TYPE_FINISH && $userMoney['finish_order_money'] < $system['money']) { return false; } return true; } }