Просмотр исходного кода

Merge remote-tracking branch 'origin/dev' into dev

sunxbiao месяцев назад: 5
Родитель
Сommit
2e83e723b6

+ 41 - 0
app/common/dao/user/UserBillDao.php

@@ -339,4 +339,45 @@ class UserBillDao extends BaseDao
339
             return 0;
339
             return 0;
340
         }
340
         }
341
     }
341
     }
342
+
343
+    /**
344
+     * @param $params
345
+     * @return array
346
+     * @throws DataNotFoundException
347
+     * @throws DbException
348
+     * @throws ModelNotFoundException
349
+     * @author 史晨
350
+     * @date 2026/2/11 14:45
351
+     * 获取数据列表
352
+     */
353
+    public function getListData($params)
354
+    {
355
+        $query = $this::getModel()::getDB();
356
+        if (isset($params['start']) && $params['start'] != '') {
357
+            if (!is_numeric($params['start'])) {
358
+                $params['start'] = strtotime($params['start']);
359
+            }
360
+            $query->where('take_time', '>=', $params['start']);
361
+        }
362
+        if (isset($params['end']) && $params['end'] != '') {
363
+            if (!is_numeric($params['end'])) {
364
+                $params['end'] = strtotime($params['end']);
365
+            }
366
+            $query->where('take_time', '<=', $params['end']);
367
+        }
368
+
369
+        if (isset($params['status']) && $params['status'] != '') {
370
+            $query->where('status', '=', $params['status']);
371
+        }
372
+
373
+        if (isset($params['merId']) && $params['merId'] != '') {
374
+            $query->whereIn('mer_id', $params['merId']);
375
+        }
376
+
377
+        if (isset($params['commissionType']) && $params['commissionType'] != '') {
378
+            $query->whereIn('commission_type', $params['commissionType']);
379
+        }
380
+
381
+        return $query->select()->toArray();
382
+    }
342
 }
383
 }

+ 24 - 8
app/common/repositories/shared/SharedProsperityTaskRepository.php

@@ -9,6 +9,7 @@ use app\common\dao\shared\SharedProsperityUserDao;
9
 use app\common\enum\CommonEnum;
9
 use app\common\enum\CommonEnum;
10
 use app\common\enum\shared\SharedProsperityRewardRecordEnum;
10
 use app\common\enum\shared\SharedProsperityRewardRecordEnum;
11
 use app\common\repositories\BaseRepository;
11
 use app\common\repositories\BaseRepository;
12
+use app\common\repositories\user\UserBillRepository;
12
 use think\facade\Db;
13
 use think\facade\Db;
13
 use think\facade\Log;
14
 use think\facade\Log;
14
 
15
 
@@ -178,17 +179,23 @@ class SharedProsperityTaskRepository extends BaseRepository
178
         $start = $data['startTime'];
179
         $start = $data['startTime'];
179
         $end = $data['endTime'];
180
         $end = $data['endTime'];
180
 
181
 
181
-        // 获取pv
182
-        /** @var SharedProsperityRewardRecordRepository $rewardRecordRepository */
183
-        $rewardRecordRepository = app()->make(SharedProsperityRewardRecordRepository::class);
184
-        $rewardList = $rewardRecordRepository->getListByTime($start, $end, self::REWARD_TYPE_PV);
185
-        if (empty($rewardList)) {
186
-            throw new \Exception('没有订单');
182
+        // 获取收入
183
+        /** @var UserBillRepository $userBillRepository */
184
+        $userBillRepository = app()->make(UserBillRepository::class);
185
+        $billList = $userBillRepository->getListForSharedProsperityThank($start, $end);
186
+        if (empty($billList)) {
187
+            throw new \Exception('没有佣金记录,无需处理');
187
         }
188
         }
189
+        // /** @var SharedProsperityRewardRecordRepository $rewardRecordRepository */
190
+        // $rewardRecordRepository = app()->make(SharedProsperityRewardRecordRepository::class);
191
+        // $rewardList = $rewardRecordRepository->getListByTime($start, $end, self::REWARD_TYPE_PV);
192
+        // if (empty($rewardList)) {
193
+        //     throw new \Exception('没有订单');
194
+        // }
188
 
195
 
189
         // user_id分区求和 [id]=>[number]
196
         // user_id分区求和 [id]=>[number]
190
-        $groupedResult = array_reduce($rewardList, function ($carry, $item) {
191
-            $userId = $item['user_id'];
197
+        $groupedResult = array_reduce($billList, function ($carry, $item) {
198
+            $userId = $item['uid'];
192
             $number = floatval($item['number']);
199
             $number = floatval($item['number']);
193
 
200
 
194
             if (!isset($carry[$userId])) {
201
             if (!isset($carry[$userId])) {
@@ -219,12 +226,21 @@ class SharedProsperityTaskRepository extends BaseRepository
219
                 $points = floor($value * $radio * 100) / 100;
226
                 $points = floor($value * $radio * 100) / 100;
220
                 // 获取上级
227
                 // 获取上级
221
                 $userData = $userRepository->getSharedProsperityUserEntityByUserId($key);
228
                 $userData = $userRepository->getSharedProsperityUserEntityByUserId($key);
229
+                if (empty($userData->getUserId())) {
230
+                    Log::info('共富感恩奖发放:' . $key . '不是共富会员,不发放感恩奖');
231
+                    continue;
232
+                }
222
                 $parentId = $userData->getParentId();
233
                 $parentId = $userData->getParentId();
223
                 if ($parentId == 0) {
234
                 if ($parentId == 0) {
224
                     Log::info('共富感恩奖发放:' . $key . '的上级是0,不发放感恩奖');
235
                     Log::info('共富感恩奖发放:' . $key . '的上级是0,不发放感恩奖');
236
+                    continue;
225
                 }
237
                 }
226
                 // 给上级发积分,记录日志
238
                 // 给上级发积分,记录日志
227
                 if ($parentId > 0) {
239
                 if ($parentId > 0) {
240
+                    if ($points <= 0) {
241
+                        Log::info('共富感恩奖发放:' . $key . '的收入是' . $value . ',奖励占比是' . $radio . ',积分是' . $value * $radio . '所以' . $parentId . '发放感恩奖');
242
+                        continue;
243
+                    }
228
                     $parentData = $userRepository->getSharedProsperityUserEntityByUserId($parentId);
244
                     $parentData = $userRepository->getSharedProsperityUserEntityByUserId($parentId);
229
                     // 记录日志
245
                     // 记录日志
230
                     $logDao->create([
246
                     $logDao->create([

+ 31 - 0
app/common/repositories/user/UserBillRepository.php

@@ -13,6 +13,7 @@ namespace app\common\repositories\user;
13
 
13
 
14
 use app\common\dao\BaseDao;
14
 use app\common\dao\BaseDao;
15
 use app\common\dao\user\UserBillDao;
15
 use app\common\dao\user\UserBillDao;
16
+use app\common\enum\CommonEnum;
16
 use app\common\enum\user\UserBillEnum;
17
 use app\common\enum\user\UserBillEnum;
17
 use app\common\enum\user\UserCertificationEnum;
18
 use app\common\enum\user\UserCertificationEnum;
18
 use app\common\model\user\UserBill;
19
 use app\common\model\user\UserBill;
@@ -656,4 +657,34 @@ class UserBillRepository extends BaseRepository
656
 
657
 
657
         return $idList;
658
         return $idList;
658
     }
659
     }
660
+
661
+    /**
662
+     * @param $start
663
+     * @param $end
664
+     * @return array
665
+     * @author 史晨
666
+     * @date 2026/2/11 14:29
667
+     * 共富感恩奖佣金查询
668
+     */
669
+    public function getListForSharedProsperityThank($start, $end)
670
+    {
671
+        $status = UserBillEnum::STATUS['VALID']['code'];
672
+        $merId = [
673
+            CommonEnum::DESIGN_MERCHANT_ID['WonderfulLiving']['code'],
674
+            CommonEnum::DESIGN_MERCHANT_ID['Repurchase']['code'],
675
+            CommonEnum::DESIGN_MERCHANT_ID['SharedProsperity']['code'],
676
+        ];
677
+        $commission_type = [
678
+            CommonEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
679
+            CommonEnum::COMMISSION_TYPE['SHARE_EARNINGS']['code']
680
+        ];
681
+        $params = [
682
+            'start' => $start,
683
+            'end' => $end,
684
+            'status' => $status,
685
+            'merId' => $merId,
686
+            'commissionType' => $commission_type
687
+        ];
688
+        return $this->dao->getListData($params);
689
+    }
659
 }
690
 }