afa 10 сар өмнө
parent
commit
2a93e7961b

+ 7 - 7
application/api/controller/Order.php

@@ -71,7 +71,7 @@ class Order extends Api
             }
       
             //更新Rwa持有数量
-            $userModel->updateForRwaNum($this->auth->id, $areaNum, '+');
+            $userModel::updateForRwaNum($this->auth->id, $this->auth->parent_id, $areaNum, '+');
             //扣除库存
             if(($order_info->stock - $areaNum) == 0 || time() >= $order_info->end_time) $order_info->status= $productPopular::STOP;
             $order_info->num  += $areaNum;
@@ -106,7 +106,7 @@ class Order extends Api
             $userArea->create(['name'=>$params['name'], 'phone'=>$params['phone'],'address'=>$params['address'],'order_id'=>$params['order_id']]);
 
             //扣除Rwa数量
-            $userModel->updateForRwaNum($order_info->user_id, 1, '-');
+            $userModel::updateForRwaNum($order_info->user_id, $userModel::getByParentId($order_info->user_id), 1, '-');
 
             $order_info->status= $productOrder::Shipped; 
             $order_info->save();
@@ -177,15 +177,15 @@ class Order extends Api
             //扣除余额记录 
             $ledgerWalletModel->changeWalletAccount($this->auth->id, Asset::TOKEN, -$order_info['price'], $ledgerWalletModel::Payment, $order_info['user_id']);
             
-            //扣除Rwa有效
-            $userModel->updateForRwaNum($order_info['user_id'], 1, '-');
+            //扣除Rwa有效 
+            $userModel::updateForRwaNum($order_info['user_id'], $userModel::getByParentId($order_info['user_id']), 1, '-');
           
             //增加转让人余额
             $amount = bcsub($order_info['price'], $order_info['fees'], 2);
             $ledgerWalletModel->changeWalletAccount($order_info['user_id'], Asset::TOKEN, $amount, $ledgerWalletModel::Receive, $this->auth->id);
 
             //增加Rwa有效
-            $userModel->updateForRwaNum($this->auth->id, 1, '+');
+            $userModel::updateForRwaNum($this->auth->id, $this->auth->parent_id, 1, '+');
 
             //修改原订单状态
             $productOrder->where('id', $order_info['order_id'])->setField('status', $productOrder::Closure);    
@@ -224,13 +224,13 @@ class Order extends Api
             $productOrder::setCreateOrder($params['order_id'], $order_info, $productOrder::Giveaway, $user['id'], $this->auth->id, getOrderSN('G'), $fees);
 
             //对方Rwa+1
-            $userModel->updateForRwaNum($user['id'], 1, '+');
+            $userModel::updateForRwaNum($user['id'], $userModel::getByParentId($user['id']), 1, '+');
 
             //扣除手续费
             $ledgerWalletModel->changeWalletAccount($this->auth->id, Asset::TOKEN, -$fees, $ledgerWalletModel::Giveaway, $user['id']);
 
             //扣除Rwa有效-1
-            $userModel->updateForRwaNum($this->auth->id, 1, '-');
+            $userModel::updateForRwaNum($this->auth->id, $this->auth->parent_id, 1, '-');
 
             $order_info->status= $productOrder::Closure; 
             $order_info->save();

+ 7 - 9
application/common/logic/BonusRewards.php

@@ -63,18 +63,16 @@ class BonusRewards
 
         //读取当日新增数据
         $bonus = self::getDayEarnings($date);
-        // if(empty($bonus)){
-        //     (new Output())->writeln("本次没有可用新增数据:" . $date);
-        //     return $log_id;
-        // }
+        if(empty($bonus)){
+            (new Output())->writeln("本次没有可用新增数据:" . $date);
+            return $log_id;
+        }
         $ledgerWalletModel = new LedgerWalletModel();
         //1.服务津贴
-        $recharge_record = UserModel::alias('a')
-        ->join('user b', 'a.id = b.parent_id', 'left')
-        ->field('a.id, SUM(a.rwa_num, b.rwa_num) as total_amount')->having('total_amount >= 10')->group("a.id")
-        ->select();
+        $recharge_record = UserModel::field('id, (direct_rwa + rwa_num) as total_amount')
+                    ->having('total_amount >= 10')
+                    ->group("id")->select();
 
-        dump( collection($recharge_record)->toArray());die;
         $recharge_count  = count($recharge_record);//总人数
         $pv = bcdiv(bcmul($bonus, config('service_ratio')), $recharge_count, 2); //收益
         foreach ($recharge_record as $info) {

+ 18 - 3
application/common/model/UserModel.php

@@ -38,6 +38,12 @@ class UserModel extends Model
         return $this->where("address", $address)->find();
     }
 
+    public static function getByParentId(int $uid): int
+    {   
+        return self::where('id', $uid)->value("parent_id");
+    }
+
+
     public function getAllAddress()
     {
         $all_list = $this->field('id,address')->select();
@@ -68,15 +74,24 @@ class UserModel extends Model
      * @param string $power
      * @return void
      */
-    public static function updateForRwaNum(int $uid, string $score, string $action)
+    public static function updateForRwaNum(int $uid, int $pid, string $score, string $action)
     {
         if($action == '+'){
-            return self::where('id', $uid)->setInc('rwa_num', $score);
+            //更新自己Rwa
+            self::where('id', $uid)->setInc('rwa_num', $score);
+            //更新直推Rwa
+            return self::where('id', $pid)->setInc('direct_rwa', $score);
         }else{
-            return self::where('id', $uid)->setDec('rwa_num', $score);
+
+            //更新自己Rwa
+            self::where('id', $uid)->setDec('rwa_num', $score);
+            //更新直推Rwa
+            return self::where('id', $pid)->setDec('direct_rwa', $score);
         }
     }
 
+
+
     /**
      * 余额更新数据
      * @param int $uid