diff --git a/script/user/user_level.php b/script/user/user_level.php new file mode 100644 index 0000000..09b0002 --- /dev/null +++ b/script/user/user_level.php @@ -0,0 +1,70 @@ +field('UserId,sum(RefundAmount) as money') + ->where(['OrderState' => ['in', ProductOrderEnum::$Refunds]]) + ->where(['agent_id'=>0]) + ->group(['UserId']) + ->fetchAll(); + +foreach ($order_refund_list_db as $info){ + $order_refund_list[$info['UserId']] = $info['money']; +} +//支付金额 +$order_pay_list_db = $product_order_model->field('UserId,sum(PaymentAmount) as money') + ->where(['OrderState' => ['in', ProductOrderEnum::$PayComplete]]) + ->where(['agent_id'=>0]) + ->group(['UserId']) + ->fetchAll(); + + +//根据等级 +$i=1; +foreach ($order_pay_list_db as $info){ + //如果有退款,先减去退款 + if(isset( $order_refund_list[$info['UserId']])){ + $info['money'] -= $order_refund_list[$info['UserId']]; + } + $temp = []; + $temp = [ + 'ConsumeAmount' => $info['money'], + ]; + $new_discount_id = 0; + if ($info['money']>=200 && $info['money']<500){ + $new_discount_id = 1; + } elseif($info['money']>=500 && $info['money']<1500) { + $new_discount_id = 2; + } elseif($info['money']>=1500 && $info['money']<3000) { + $new_discount_id = 4; + } elseif($info['money']>=3000 && $info['money']<6000) { + $new_discount_id = 5; + } elseif($info['money']>=6000) { + $new_discount_id = 6; + } + + $user_info = $user_model->getOne(['Id'=>$info['UserId'],'agent_id'=>0]); + + //新折扣大于老折扣,且不为代理用户 + if($new_discount_id>$user_info['discount_id'] && $user_info['agent_id']==0){ + $temp['discount_id'] = $new_discount_id; + } + + $user_model->updateOne(['Id'=>$info['UserId'],'agent_id'=>0],$temp); + echo $i."\r"; + $i++; +}