Kirin пре 3 година
родитељ
комит
080023ea75
2 измењених фајлова са 25 додато и 3 уклоњено
  1. 19 0
      app/models/store/StoreOrder.php
  2. 6 3
      app/models/user/User.php

+ 19 - 0
app/models/store/StoreOrder.php

@@ -902,6 +902,25 @@ class StoreOrder extends BaseModel
         return $res && UserBill::income('奖池增加', 0, 'award_lake', 'add', $num, $link_id, (float)$old + $num, $str ?: '奖池增加');
     }
 
+    public static function addPublicLake($num, $link_id, $type = 'integral')
+    {
+        $old = sys_config('public_lake', 0, true);
+        $res = SystemConfig::where('menu_name', 'public_lake')->update(['value' => (float)$old + $num]);
+        $str = '';
+        switch ($type) {
+            case 'integral':
+                $str = '积分手续费';
+                break;
+            case 'award':
+                $str = '奖池提取';
+                break;
+            case 'award_out':
+                $str = '奖金过期';
+                break;
+        }
+        return $res && UserBill::income('公益池增加', 0, 'public_lake', 'add', $num, $link_id, (float)$old + $num, $str ?: '奖池增加');
+    }
+
     private static function addAchievement($order)
     {
         $res = Achievement::create(

+ 6 - 3
app/models/user/User.php

@@ -777,9 +777,12 @@ class User extends BaseModel
         try {
             $res1 = self::bcDec($uid, 'integral', $num, 'uid')
                 && UserBill::expend('积分转出', $uid, 'integral', 'trade_out', $num, 0, $user['integral'] - $num, '积分转出' . $num);
-            $res2 = self::bcInc($to_uid, 'integral', bcmul($num, 0.9, 2), 'uid')
-                && UserBill::income('积分转入', $to_uid, 'integral', 'trade_in', bcmul($num, 0.9, 2), 0, $to_user['integral'] + (float)bcmul($num, 0.9, 2), '积分转入' . $num . ',扣除手续费后实际到账' . bcmul($num, 0.9, 2));
-            if ($res1 && $res2) {
+            $get = bcmul($num, 0.9, 2);
+            $left = $num - $get;
+            $res2 = self::bcInc($to_uid, 'integral', $get, 'uid')
+                && UserBill::income('积分转入', $to_uid, 'integral', 'trade_in', $get, 0, $to_user['integral'] + (float)$get, '积分转入' . $num . ',扣除手续费后实际到账' . $get);
+            $res3 = StoreOrder::addPublicLake(bcmul(bcmul($left, 0.8, 2), 0.1, 2), 0);
+            if ($res1 && $res2 && $res3) {
                 BaseModel::commitTrans();
                 return true;
             } else {