WIN-2308041133\Administrator 3 дней назад
Родитель
Сommit
c8233acf62

+ 24 - 5
app/adminapi/controller/v1/finance/Finance.php

@@ -11,6 +11,7 @@
 namespace app\adminapi\controller\v1\finance;
 
 use app\services\user\UserBillServices;
+use app\services\user\UserBrokerageServices;
 use think\facade\App;
 use app\adminapi\controller\AuthController;
 
@@ -82,6 +83,21 @@ class Finance extends AuthController
         return app('json')->success($this->services->user_info((int)$id));
     }
 
+//    /**
+//     * 佣金提现记录个人列表
+//     */
+//    public function get_extract_list($id = '')
+//    {
+//        if ($id == '') return app('json')->fail(100100);
+//        $where = $this->request->getMore([
+//            ['start_time', ''],
+//            ['end_time', ''],
+//            ['nickname', '']
+//        ]);
+//        $where['category'] = 'now_money';
+//        $where['type'] = ['brokerage', 'brokerage_user'];
+//        return app('json')->success($this->services->getBillOneList((int)$id, $where));
+//    }
     /**
      * 佣金提现记录个人列表
      */
@@ -91,11 +107,14 @@ class Finance extends AuthController
         $where = $this->request->getMore([
             ['start_time', ''],
             ['end_time', ''],
-            ['nickname', '']
+            ['nickname', ''],
+            ['limit', 20],
+            ['page', 1]
         ]);
-        $where['category'] = 'now_money';
-        $where['type'] = ['brokerage', 'brokerage_user'];
-        return app('json')->success($this->services->getBillOneList((int)$id, $where));
-    }
 
+        /** @var UserBrokerageServices $userBrokerageServices */
+        $userBrokerageServices = app()->make(UserBrokerageServices::class);
+
+        return app('json')->success($userBrokerageServices->getBrokerageOneList((int)$id, $where));
+    }
 }

+ 1 - 1
app/adminapi/route/finance.php

@@ -40,7 +40,7 @@ Route::group('finance', function () {
         //佣金详情用户信息
         Route::get('finance/user_info/:id', 'v1.finance.Finance/user_info')->option(['real_name' => '佣金详情用户信息']);
         //佣金提现记录个人列表
-        Route::get('finance/extract_list/:id', 'v1.finance.Finance/get_extract_list')->option(['real_name' => '佣金提现记录个人列表']);
+        Route::get('finance/extract_list/:id', 'v1.finance.Finance/get_extract_list')->option(['real_name' => '佣金记录个人列表']);
         /** 余额记录 */
         Route::get('balance/list', 'v1.finance.UserBalance/balanceList')->option(['real_name' => '余额记录列表']);
         Route::post('balance/set_mark/:id', 'v1.finance.UserBalance/balanceRecordRemark')->option(['real_name' => '余额记录备注']);

+ 49 - 0
app/dao/user/UserBrokerageDao.php

@@ -104,4 +104,53 @@ class UserBrokerageDao extends BaseDao
     {
         return $this->search(['uid' => $uid, 'status' => 1, 'pm' => 1])->where('frozen_time', '>', time())->sum('number');
     }
+
+    /**
+     * 获取总数
+     * @param array $where
+     * @return int
+     * @throws \ReflectionException
+     */
+    public function count(array $where = [])
+    {
+        return $this->search($where)->count();
+    }
+
+    /**
+     * 搜索器-开始时间
+     * @param \think\Model $query
+     * @param $value
+     */
+    public function searchStartTimeAttr($query, $value)
+    {
+        if ($value !== '') {
+            $query->whereTime('add_time', '>=', $value);
+        }
+    }
+
+    /**
+     * 搜索器-结束时间
+     * @param \think\Model $query
+     * @param $value
+     */
+    public function searchEndTimeAttr($query, $value)
+    {
+        if ($value !== '') {
+            $query->whereTime('add_time', '<=', $value);
+        }
+    }
+
+    /**
+     * 搜索器-昵称
+     * @param \think\Model $query
+     * @param $value
+     */
+    public function searchNicknameAttr($query, $value)
+    {
+        if ($value !== '') {
+            $query->whereHas('user', function ($query) use ($value) {
+                $query->whereLike('nickname', '%' . $value . '%');
+            });
+        }
+    }
 }

+ 7 - 0
app/services/order/StoreOrderSuccessServices.php

@@ -231,6 +231,9 @@ class StoreOrderSuccessServices extends BaseServices
                 ->where('status', 1)
                 ->column('id');
 
+            // 调试日志:记录符合条件的等级ID
+            @file_put_contents("quanju.txt", json_encode($qualifiedLevels)."-issueServiceFee符合条件等级ID列表\r\n", 8);
+
             if (empty($qualifiedLevels)) {
                 return false;
             }
@@ -244,6 +247,9 @@ class StoreOrderSuccessServices extends BaseServices
                 }
 
                 $spreadAgentLevelId = User::where('uid', $spreadUid)->value('agent_level');
+                // 调试日志:记录检查的用户和等级
+                @file_put_contents("quanju.txt", json_encode(['spreadUid'=>$spreadUid,'agent_level'=>$spreadAgentLevelId])."-issueServiceFee检查用户等级\r\n", 8);
+
                 if (!$spreadAgentLevelId) {
                     $currentUid = $spreadUid;
                     continue;
@@ -252,6 +258,7 @@ class StoreOrderSuccessServices extends BaseServices
                 // 检查上级的分销等级是否在V2及以上
                 if (in_array($spreadAgentLevelId, $qualifiedLevels)) {
                     // 找到了,发放服务费
+                    @file_put_contents("quanju.txt", json_encode(['spreadUid'=>$spreadUid,'agent_level'=>$spreadAgentLevelId,'amount'=>$serviceAmount])."-issueServiceFee发放服务费\r\n", 8);
                     /** @var UserServices $userServices */
                     $userServices = app()->make(UserServices::class);
                     /** @var UserBrokerageServices $userBrokerageServices */

+ 44 - 0
app/services/user/UserBrokerageServices.php

@@ -496,4 +496,48 @@ class UserBrokerageServices extends BaseServices
             'position' => $this->getUserBrokerageRank($uid, $type)
         ];
     }
+
+    /**
+     * 获取某个用户的佣金记录列表
+     * @param int $uid 用户ID
+     * @param array $where 查询条件
+     * @return array
+     * @throws \ReflectionException
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public function getBrokerageOneList(int $uid, array $where)
+    {
+        $where['uid'] = $uid;
+
+        // 获取分页参数
+        $page = $where['page'] ?? 1;
+        $limit = $where['limit'] ?? 20;
+
+        // 查询列表
+        $list = $this->dao->getList($where, '*', $page, $limit);
+        $count = $this->dao->count($where);
+
+        // 格式化时间
+        if ($list) {
+            foreach ($list as &$item) {
+                $item['add_time'] = $item['add_time'] ? date('Y-m-d H:i:s', (int)$item['add_time']) : '';
+                if (isset($item['user'])) {
+                    $item['user_nickname'] = $item['user']['nickname'] ?? '';
+                    $item['user_phone'] = $item['user']['phone'] ?? '';
+                } else {
+                    $item['user_nickname'] = '';
+                    $item['user_phone'] = '';
+                }
+            }
+        }
+
+        return [
+            'count' => $count,
+            'limit' => $limit,
+            'page' => $page,
+            'data' => $list
+        ];
+    }
 }