| | |
| | | use app\common\model\plus\agent\Order as AgentOrderModel; |
| | | use app\common\model\plus\team\Order as TeamOrderModel; |
| | | use app\common\model\user\PointsLog as PointsLogModel; |
| | | use app\common\model\user\ConsumptionLog as ConsumptionLogModel; |
| | | use app\common\enum\order\OrderTypeEnum; |
| | | use app\common\model\order\OrderSettled as OrderSettledModel; |
| | | use app\supplier\model\store\Order as StoreOrderModel; |
| | |
| | | } |
| | | // 发放分销商佣金,发放团队分红 |
| | | foreach ($orderList as $order) { |
| | | if ($order['is_newcomer']==1){ |
| | | // 赠送等级积分给用户 |
| | | $user = UserModel::detail($order['user_id']); |
| | | $points = $order['pay_price']; |
| | | $user->setIncPoints($points, '新人专区购买商品专享订单奖励积分'); |
| | | } |
| | | AgentOrderModel::grantMoney($order, $this->orderType); |
| | | // 发放团队分红 by yj |
| | | TeamOrderModel::grantMoney($order, $this->orderType); |
| | |
| | | $this->setIncUserExpend($orderList); |
| | | // 处理订单赠送的积分 |
| | | $this->setGiftPointsBonus($orderList); |
| | | // 处理订单赠送的消费券 |
| | | $this->setGiftConsumptionBonus($orderList); |
| | | // 将订单设置为已结算 |
| | | $this->model->onBatchUpdate($orderIds, ['is_settled' => 1,'settled_time' => time(),'is_settled_team' => 1]); |
| | | // 供应商结算 |
| | |
| | | } |
| | | return true; |
| | | } |
| | | /** |
| | | * 处理订单赠送的消费券 |
| | | */ |
| | | private function setGiftConsumptionBonus($orderList) |
| | | { |
| | | // 计算用户所得消费券 |
| | | $userData = []; |
| | | $logData = []; |
| | | foreach ($orderList as $order) { |
| | | // 计算用户所得消费券 |
| | | $pointsBonus = $order['consumption_bonus']; |
| | | if ($pointsBonus <= 0) continue; |
| | | // 减去订单退款的积分 |
| | | foreach ($order['product'] as $product) { |
| | | if ( |
| | | !empty($product['refund']) |
| | | && $product['refund']['type']['value'] == 10 // 售后类型:退货退款 |
| | | && $product['refund']['is_agree']['value'] == 10 // 商家审核:已同意 |
| | | ) { |
| | | $pointsBonus -= $product['consumption_bonus']; |
| | | } |
| | | } |
| | | // 计算用户所得积分 |
| | | !isset($userData[$order['user_id']]) && $userData[$order['user_id']] = 0; |
| | | $userData[$order['user_id']] += $pointsBonus; |
| | | // 整理用户积分变动明细 |
| | | $logData[] = [ |
| | | 'user_id' => $order['user_id'], |
| | | 'value' => $pointsBonus, |
| | | 'describe' => "订单赠送:{$order['order_no']}", |
| | | 'app_id' => $order['app_id'], |
| | | ]; |
| | | } |
| | | if (!empty($userData)) { |
| | | // 累积到会员表记录 |
| | | $this->UserModel->onBatchIncConsumption($userData); |
| | | // 批量新增积分明细记录 |
| | | (new ConsumptionLogModel)->onBatchAdd($logData); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 累积用户实际消费金额 |