Browse Source

会员升级

Kirin 1 year ago
parent
commit
cdaf920c2f

+ 8 - 29
app/controller/api/v1/PublicController.php

@@ -62,10 +62,12 @@ class PublicController extends BaseController
     public function test()
     {
         $list = UserIntegral::where('add_time', 'between', [1705766400, 1705852800])->where('extract_sum_real', null)->where('type', 0)
-            ->group('link_id')->field('link_id,count(id)')->select()->toArray();
-        var_dump($list);
+            ->group('link_id')->field('link_id,count(id),price')->select()->toArray();
 
-        $this->dealOrderIntegral(StoreOrder::where('id', 383)->find(), 33.98630144);
+        foreach ($list as $v) {
+
+            $this->dealOrderIntegral(StoreOrder::where('id', $v['link_id'])->find(), $v['price']);
+        }
 
     }
 
@@ -89,12 +91,7 @@ class PublicController extends BaseController
                 $rate = sys_config('static_integral_rate', 3);
                 $extract_sum = bcmul($total_price, $rate, 2);
                 $mark = '购买商品,获得消费分';
-
-                var_dump($order['id']);
-                var_dump($give_static_integral);
-                var_dump($extract_sum);
-                var_dump($mark);
-//                $awardIntegralService->incIntegral($order['uid'], $integral_price, $give_static_integral, $total_price, 0, $extract_sum, $order['id'], $mark);
+                $awardIntegralService->incIntegralAdmin($order['uid'], $integral_price, $give_static_integral, $total_price, 0, $extract_sum, $order['id'], $mark);
 //                }
                 //TODO 加动态积分
                 //推荐奖
@@ -107,22 +104,7 @@ class PublicController extends BaseController
                         if ($give_action_integral > 0) {
                             $extract_sum = bcmul($give_action_integral, $rate, 2);
                             $mark = '推荐用户' . $user['nickname'] . "({$user['uid']})" . '购买商品,获得推荐积分';
-                            var_dump($give_action_integral);
-                            var_dump($extract_sum);
-                            var_dump($mark);
-//                            $awardIntegralService->incIntegral($spread['uid'], $integral_price, $give_action_integral, $total_price, 1, $extract_sum, $order['id'], $mark);
-                        }
-                    }
-                    if ($awardIntegralService->getPaySum($spread['uid']) > 0) {
-                        $award_ratio = sys_config('recommend_speed_integral', 0);
-                        $give_action_integral = bcdiv(bcmul($total_price, $award_ratio), 100, 2);
-                        if ($give_action_integral > 0) {
-                            $first = $awardIntegralService->getFirstStaticIntegral($spread['uid']);
-                            $mark = ',推荐用户' . $user['nickname'] . "({$user['uid']})" . '购买商品,获得加速积分';
-//                            $awardIntegralService->incUpdateIntegral($first['id'], $integral_price, $give_action_integral, $mark);
-                            var_dump($give_action_integral);
-                            var_dump($extract_sum);
-                            var_dump($mark);
+                            $awardIntegralService->incIntegralAdmin($spread['uid'], $integral_price, $give_action_integral, $total_price, 1, $extract_sum, $order['id'], $mark);
                         }
                     }
                 }
@@ -139,11 +121,8 @@ class PublicController extends BaseController
 //                        if ($awardIntegralService->getHourExtractPaySum($spread['uid'], 24) > 0) {
                         $extract_sum = bcmul($real_send, $rate, 2);
                         $mark = '团队用户' . $user['nickname'] . "({$user['uid']})" . '购买商品,获得团队级差积分';
-//                        $awardIntegralService->incIntegral($spread['uid'], $integral_price, $real_send, $total_price, 1, $extract_sum, $order['id'], $mark);
+                        $awardIntegralService->incIntegralAdmin($spread['uid'], $integral_price, $real_send, $total_price, 1, $extract_sum, $order['id'], $mark);
 //                        }
-                        var_dump($give_action_integral);
-                        var_dump($extract_sum);
-                        var_dump($mark);
                         $send = $give_action_integral;
                     }
 //                    $levelServices->detection((int)$spread['uid']);

+ 30 - 2
app/services/user/UserAwardIntegralServices.php

@@ -14,6 +14,7 @@ namespace app\services\user;
 
 use app\dao\system\AwardLakeDao;
 use app\dao\user\UserIntegralDao;
+use app\model\user\UserIntegral;
 use app\services\BaseServices;
 use crmeb\traits\ServicesTrait;
 use app\webscoket\SocketPush;
@@ -198,7 +199,7 @@ class UserAwardIntegralServices extends BaseServices
      * @param string $mark
      * @return \crmeb\basic\BaseModel|\think\Model
      */
-    public function incIntegral(int $uid, string $price, string $total, float $order_price, int $type, string $extract_sum, int $link_id = 0, string $mark = '')
+    public function incIntegral(int $uid, string $price, string $total, float $order_price, int $type, string $extract_sum, int $link_id = 0, string $mark = '', $add_time = 0)
     {
         $inc_integral = bcdiv($total, $price, 5);
         return $this->dao->save([
@@ -211,12 +212,39 @@ class UserAwardIntegralServices extends BaseServices
             'link_id' => $link_id,
             'mark' => $mark,
             'order_price' => $order_price,
-            'add_time' => time(),
+            'add_time' => $add_time ?: time(),
             'status' => $inc_integral > 0 ? 0 : 1,
         ]);
     }
 
 
+    public function incIntegralAdmin(int $uid, string $price, string $total, float $order_price, int $type, string $extract_sum, int $link_id = 0, string $mark = '', $add_time = 0)
+    {
+        $inc_integral = bcdiv($total, $price, 5);
+        $old = UserIntegral::where('uid', $uid)->where('link_id', $link_id)->where('type', $type)->find();
+        if ($old) {
+            $dump = '用户' . $uid . $mark . '补' . bcsub($inc_integral, $old['num'], 5);
+        } else {
+            $dump = '用户' . $uid . $mark . '补' . $inc_integral;
+        }
+        echo $dump . PHP_EOL;
+//        return $this->dao->save([
+//            'uid' => $uid,
+//            'type' => $type == 1 ? 1 : 0,
+//            'num' => $inc_integral,
+//            'price' => $price,
+//            'sum_price' => $total,
+//            'extract_sum' => $extract_sum,
+//            'link_id' => $link_id,
+//            'mark' => $mark,
+//            'order_price' => $order_price,
+//            'add_time' => $add_time ?: time(),
+//            'status' => $inc_integral > 0 ? 0 : 1,
+//        ]);
+        return true;
+    }
+
+
     public function incUpdateIntegral(int $id, string $price, string $total, string $mark)
     {
         $inc_integral = bcdiv($total, $price, 5);