Переглянути джерело

优化用户下单方法-进行中

sunxbiao 1 рік тому
батько
коміт
bc94e33ff5

+ 15 - 11
app/common/dao/user/UserBillDao.php

@@ -193,22 +193,26 @@ class UserBillDao extends BaseDao
193
     }
193
     }
194
 
194
 
195
     /**
195
     /**
196
-     * @param $uid
197
-     * @return CommonEntity
196
+     * @param array $billIdList
197
+     * @return UserBillEntity[]
198
      */
198
      */
199
-    public function getUserBillEntityByBillId($uid): CommonEntity
199
+    public function getUserBillEntityListByBillIdList(array $billIdList): array
200
     {
200
     {
201
-        $data = [];
201
+        $entityList = [];
202
         try {
202
         try {
203
-            $dataRes = UserBill::getDB()
204
-                ->where('id', $uid)
205
-                ->find();
206
-            if (!empty($dataRes)) {
207
-                $data = $dataRes->toArray();
203
+            $dataList = UserBill::getDB()
204
+                ->whereIn('bill_id', $billIdList)
205
+                ->select()
206
+                ->toArray();
207
+            if (!empty($dataList)) {
208
+                $entityList = array_map(function ($data) {
209
+                    return UserBillEntity::newInstance($data);
210
+                }, $dataList);
208
             }
211
             }
209
-        } catch (\Exception $e) {
212
+        } catch (DataNotFoundException|ModelNotFoundException|DbException $e) {
213
+
210
         }
214
         }
211
-        return UserBillEntity::newInstance($data);
215
+        return $entityList;
212
     }
216
     }
213
 
217
 
214
     /**
218
     /**

+ 15 - 13
app/common/dao/user/UserDao.php

@@ -409,25 +409,27 @@ class UserDao extends BaseDao
409
         return $this::getModel()::getDB()->where('test_user', '=', 1)->whereOr('is_del', '=', 1)->column('uid');
409
         return $this::getModel()::getDB()->where('test_user', '=', 1)->whereOr('is_del', '=', 1)->column('uid');
410
     }
410
     }
411
 
411
 
412
-
413
     /**
412
     /**
414
-     * @param $uid
415
-     * @return CommonEntity
413
+     * @param array $uidList
414
+     * @return UserEntity[]
416
      */
415
      */
417
-    public function getUserEntityByUid($uid): CommonEntity
416
+    public function getUserEntityListByUidList(array $uidList): array
418
     {
417
     {
419
-        $userData = [];
418
+        $entityList = [];
420
         try {
419
         try {
421
-            $userDataRes = User::getDB()
422
-                ->where('uid', $uid)
420
+            $dataList = User::getDB()
421
+                ->whereIn('uid', $uidList)
423
                 ->where('is_del', '=', UserEnum::IS_DEL['No']['code'])
422
                 ->where('is_del', '=', UserEnum::IS_DEL['No']['code'])
424
-                ->where('status', '=', UserEnum::STATUS['Normal']['code'])
425
-                ->find();
426
-            if (!empty($userDataRes)) {
427
-                $userData = $userDataRes->toArray();
423
+                ->select()
424
+                ->toArray();
425
+            if (!empty($dataList)) {
426
+                $entityList = array_map(function ($data) {
427
+                    return UserEntity::newInstance($data);
428
+                }, $dataList);
428
             }
429
             }
429
-        } catch (\Exception $e) {
430
+        } catch (DataNotFoundException|ModelNotFoundException|DbException $e) {
431
+
430
         }
432
         }
431
-        return UserEntity::newInstance($userData);
433
+        return $entityList;
432
     }
434
     }
433
 }
435
 }

+ 10 - 0
app/common/enum/user/UserBillEnum.php

@@ -12,6 +12,16 @@ class UserBillEnum extends CommonEnum
12
         'INCOME' => ['code' => 1, 'name' => '获得'],
12
         'INCOME' => ['code' => 1, 'name' => '获得'],
13
     ];
13
     ];
14
 
14
 
15
+    // 明细种类
16
+    const CATEGORY = [
17
+        'NowMoney' => ['code' => 'now_money', 'name' => 'now_money']
18
+    ];
19
+
20
+    // 明细类型  commission佣金
21
+    const TYPE = [
22
+        'Commission' => ['code' => 'commission', 'name' => '佣金']
23
+    ];
24
+
15
     // 状态
25
     // 状态
16
     const STATUS = [
26
     const STATUS = [
17
         'PENDING' => ['code' => 0, 'name' => '待确定'],
27
         'PENDING' => ['code' => 0, 'name' => '待确定'],

+ 97 - 44
app/common/repositories/store/order/StoreOrderRepository.php

@@ -11353,10 +11353,15 @@ class StoreOrderRepository extends BaseRepository
11353
             $userBillRepository = app()->make(UserBillRepository::class);
11353
             $userBillRepository = app()->make(UserBillRepository::class);
11354
             $userBillRepository->addUserBill(
11354
             $userBillRepository->addUserBill(
11355
                 $storeOrderEntity->getUid(),
11355
                 $storeOrderEntity->getUid(),
11356
-                UserBillEnum::TYPE_SHOP['Platform']['code'],
11357
-                $storeOrderEntity->getOrderId(),
11358
                 UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11356
                 UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11357
+                UserBillEnum::PM['INCOME']['code'],
11359
                 $yanglaojin,
11358
                 $yanglaojin,
11359
+                UserBillEnum::CATEGORY['NowMoney']['code'],
11360
+                UserBillEnum::TYPE['Commission']['code'],
11361
+                UserBillEnum::SOURCE['ONLINE']['code'],
11362
+                UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11363
+                UserBillEnum::TYPE_SHOP['Platform']['code'],
11364
+                $storeOrderEntity->getOrderId(),
11360
                 '购买精彩生活商品赠送养老金'
11365
                 '购买精彩生活商品赠送养老金'
11361
             );
11366
             );
11362
 
11367
 
@@ -11444,11 +11449,16 @@ class StoreOrderRepository extends BaseRepository
11444
                     /** @var UserBillRepository $userBillRepository */
11449
                     /** @var UserBillRepository $userBillRepository */
11445
                     $userBillRepository = app()->make(UserBillRepository::class);
11450
                     $userBillRepository = app()->make(UserBillRepository::class);
11446
                     $userBillRepository->addUserBill(
11451
                     $userBillRepository->addUserBill(
11447
-                        $userEntityBySpreadUid->getUid(),
11448
-                        UserBillEnum::TYPE_SHOP['Platform']['code'],
11449
-                        $storeOrderEntity->getOrderId(),
11452
+                        $storeOrderEntity->getUid(),
11450
                         UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
11453
                         UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
11454
+                        UserBillEnum::PM['INCOME']['code'],
11451
                         $brokeragePriceBySpreadUid,
11455
                         $brokeragePriceBySpreadUid,
11456
+                        UserBillEnum::CATEGORY['NowMoney']['code'],
11457
+                        UserBillEnum::TYPE['Commission']['code'],
11458
+                        UserBillEnum::SOURCE['ONLINE']['code'],
11459
+                        UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11460
+                        UserBillEnum::TYPE_SHOP['Platform']['code'],
11461
+                        $storeOrderEntity->getOrderId(),
11452
                         '推广精彩生活区商品赠送佣金'
11462
                         '推广精彩生活区商品赠送佣金'
11453
                     );
11463
                     );
11454
 
11464
 
@@ -11487,11 +11497,16 @@ class StoreOrderRepository extends BaseRepository
11487
                         /** @var UserBillRepository $userBillRepository */
11497
                         /** @var UserBillRepository $userBillRepository */
11488
                         $userBillRepository = app()->make(UserBillRepository::class);
11498
                         $userBillRepository = app()->make(UserBillRepository::class);
11489
                         $userBillRepository->addUserBill(
11499
                         $userBillRepository->addUserBill(
11490
-                            $userEntityBySpreadUid->getUid(),
11491
-                            UserBillEnum::TYPE_SHOP['Platform']['code'],
11492
-                            $storeOrderEntity->getOrderId(),
11500
+                            $storeOrderEntity->getUid(),
11493
                             UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11501
                             UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11502
+                            UserBillEnum::PM['INCOME']['code'],
11494
                             $yanglaojinBySpreadUid,
11503
                             $yanglaojinBySpreadUid,
11504
+                            UserBillEnum::CATEGORY['NowMoney']['code'],
11505
+                            UserBillEnum::TYPE['Commission']['code'],
11506
+                            UserBillEnum::SOURCE['ONLINE']['code'],
11507
+                            UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11508
+                            UserBillEnum::TYPE_SHOP['Platform']['code'],
11509
+                            $storeOrderEntity->getOrderId(),
11495
                             '推广精彩生活区商品获得养老金'
11510
                             '推广精彩生活区商品获得养老金'
11496
                         );
11511
                         );
11497
                     }
11512
                     }
@@ -11508,11 +11523,16 @@ class StoreOrderRepository extends BaseRepository
11508
                     /** @var UserBillRepository $userBillRepository */
11523
                     /** @var UserBillRepository $userBillRepository */
11509
                     $userBillRepository = app()->make(UserBillRepository::class);
11524
                     $userBillRepository = app()->make(UserBillRepository::class);
11510
                     $userBillRepository->addUserBill(
11525
                     $userBillRepository->addUserBill(
11511
-                        $userEntityByShareUid->getUid(),
11512
-                        UserBillEnum::TYPE_SHOP['Platform']['code'],
11513
-                        $storeOrderEntity->getOrderId(),
11526
+                        $storeOrderEntity->getUid(),
11514
                         UserBillEnum::COMMISSION_TYPE['SHARE_EARNINGS']['code'],
11527
                         UserBillEnum::COMMISSION_TYPE['SHARE_EARNINGS']['code'],
11528
+                        UserBillEnum::PM['INCOME']['code'],
11515
                         $brokeragePriceByShareUid,
11529
                         $brokeragePriceByShareUid,
11530
+                        UserBillEnum::CATEGORY['NowMoney']['code'],
11531
+                        UserBillEnum::TYPE['Commission']['code'],
11532
+                        UserBillEnum::SOURCE['ONLINE']['code'],
11533
+                        UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11534
+                        UserBillEnum::TYPE_SHOP['Platform']['code'],
11535
+                        $storeOrderEntity->getOrderId(),
11516
                         '分享精彩生活区商品赠送佣金'
11536
                         '分享精彩生活区商品赠送佣金'
11517
                     );
11537
                     );
11518
                     // 计算 复购金
11538
                     // 计算 复购金
@@ -11544,14 +11564,18 @@ class StoreOrderRepository extends BaseRepository
11544
                     /** @var UserBillRepository $userBillRepository */
11564
                     /** @var UserBillRepository $userBillRepository */
11545
                     $userBillRepository = app()->make(UserBillRepository::class);
11565
                     $userBillRepository = app()->make(UserBillRepository::class);
11546
                     $userBillRepository->addUserBill(
11566
                     $userBillRepository->addUserBill(
11547
-                        $merchantEntity->getUid(),
11548
-                        UserBillEnum::TYPE_SHOP['Platform']['code'],
11549
-                        $storeOrderEntity->getOrderId(),
11567
+                        $storeOrderEntity->getUid(),
11550
                         UserBillEnum::COMMISSION_TYPE['LOCKED_CUSTOMER']['code'],
11568
                         UserBillEnum::COMMISSION_TYPE['LOCKED_CUSTOMER']['code'],
11569
+                        UserBillEnum::PM['INCOME']['code'],
11551
                         $brokeragePriceByMerId,
11570
                         $brokeragePriceByMerId,
11571
+                        UserBillEnum::CATEGORY['NowMoney']['code'],
11572
+                        UserBillEnum::TYPE['Commission']['code'],
11573
+                        UserBillEnum::SOURCE['ONLINE']['code'],
11574
+                        UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11575
+                        UserBillEnum::TYPE_SHOP['Platform']['code'],
11576
+                        $storeOrderEntity->getOrderId(),
11552
                         '锁客佣金(精彩生活区商品赠送)'
11577
                         '锁客佣金(精彩生活区商品赠送)'
11553
                     );
11578
                     );
11554
-
11555
                     // 计算 复购金
11579
                     // 计算 复购金
11556
                     $fugouByMerId = bcmul($storeOrderEntity->getConPri(), CommonEnum::ORDER_EARNING_ALLOCATION['WonderfulLiving']['Lock']['Fugou']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
11580
                     $fugouByMerId = bcmul($storeOrderEntity->getConPri(), CommonEnum::ORDER_EARNING_ALLOCATION['WonderfulLiving']['Lock']['Fugou']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
11557
                     // 添加复购金记录
11581
                     // 添加复购金记录
@@ -11578,10 +11602,15 @@ class StoreOrderRepository extends BaseRepository
11578
                 $userBillRepository = app()->make(UserBillRepository::class);
11602
                 $userBillRepository = app()->make(UserBillRepository::class);
11579
                 $userBillRepository->addUserBill(
11603
                 $userBillRepository->addUserBill(
11580
                     $storeOrderEntity->getUid(),
11604
                     $storeOrderEntity->getUid(),
11581
-                    UserBillEnum::TYPE_SHOP['Platform']['code'],
11582
-                    $storeOrderEntity->getOrderId(),
11583
                     UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11605
                     UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11606
+                    UserBillEnum::PM['INCOME']['code'],
11584
                     $yanglaojin,
11607
                     $yanglaojin,
11608
+                    UserBillEnum::CATEGORY['NowMoney']['code'],
11609
+                    UserBillEnum::TYPE['Commission']['code'],
11610
+                    UserBillEnum::SOURCE['ONLINE']['code'],
11611
+                    UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11612
+                    UserBillEnum::TYPE_SHOP['Platform']['code'],
11613
+                    $storeOrderEntity->getOrderId(),
11585
                     '购买会员专区商品赠送养老金'
11614
                     '购买会员专区商品赠送养老金'
11586
                 );
11615
                 );
11587
 
11616
 
@@ -11655,11 +11684,16 @@ class StoreOrderRepository extends BaseRepository
11655
                             /** @var UserBillRepository $userBillRepository */
11684
                             /** @var UserBillRepository $userBillRepository */
11656
                             $userBillRepository = app()->make(UserBillRepository::class);
11685
                             $userBillRepository = app()->make(UserBillRepository::class);
11657
                             $userBillRepository->addUserBill(
11686
                             $userBillRepository->addUserBill(
11658
-                                $userEntityBySpreadUid->getUid(),
11659
-                                UserBillEnum::TYPE_SHOP['Platform']['code'],
11660
-                                $storeOrderEntity->getOrderId(),
11687
+                                $storeOrderEntity->getUid(),
11661
                                 UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
11688
                                 UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
11689
+                                UserBillEnum::PM['INCOME']['code'],
11662
                                 $brokeragePriceBySpreadUid,
11690
                                 $brokeragePriceBySpreadUid,
11691
+                                UserBillEnum::CATEGORY['NowMoney']['code'],
11692
+                                UserBillEnum::TYPE['Commission']['code'],
11693
+                                UserBillEnum::SOURCE['ONLINE']['code'],
11694
+                                UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11695
+                                UserBillEnum::TYPE_SHOP['Platform']['code'],
11696
+                                $storeOrderEntity->getOrderId(),
11663
                                 '推广会员专区商品赠送佣金'
11697
                                 '推广会员专区商品赠送佣金'
11664
                             );
11698
                             );
11665
                         }
11699
                         }
@@ -11708,11 +11742,16 @@ class StoreOrderRepository extends BaseRepository
11708
                             /** @var UserBillRepository $userBillRepository */
11742
                             /** @var UserBillRepository $userBillRepository */
11709
                             $userBillRepository = app()->make(UserBillRepository::class);
11743
                             $userBillRepository = app()->make(UserBillRepository::class);
11710
                             $userBillRepository->addUserBill(
11744
                             $userBillRepository->addUserBill(
11711
-                                $userEntityBySpreadUid->getUid(),
11712
-                                UserBillEnum::TYPE_SHOP['Platform']['code'],
11713
-                                $storeOrderEntity->getOrderId(),
11745
+                                $storeOrderEntity->getUid(),
11714
                                 UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11746
                                 UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11747
+                                UserBillEnum::PM['INCOME']['code'],
11715
                                 $yanglaojinBySpreadUid,
11748
                                 $yanglaojinBySpreadUid,
11749
+                                UserBillEnum::CATEGORY['NowMoney']['code'],
11750
+                                UserBillEnum::TYPE['Commission']['code'],
11751
+                                UserBillEnum::SOURCE['ONLINE']['code'],
11752
+                                UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11753
+                                UserBillEnum::TYPE_SHOP['Platform']['code'],
11754
+                                $storeOrderEntity->getOrderId(),
11716
                                 '推广会员专区商品获得养老金'
11755
                                 '推广会员专区商品获得养老金'
11717
                             );
11756
                             );
11718
                         }
11757
                         }
@@ -11778,10 +11817,15 @@ class StoreOrderRepository extends BaseRepository
11778
             $userBillRepository = app()->make(UserBillRepository::class);
11817
             $userBillRepository = app()->make(UserBillRepository::class);
11779
             $userBillRepository->addUserBill(
11818
             $userBillRepository->addUserBill(
11780
                 $storeOrderEntity->getUid(),
11819
                 $storeOrderEntity->getUid(),
11781
-                UserBillEnum::TYPE_SHOP['Platform']['code'],
11782
-                $storeOrderEntity->getOrderId(),
11783
                 UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11820
                 UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11821
+                UserBillEnum::PM['INCOME']['code'],
11784
                 $yanglaojin,
11822
                 $yanglaojin,
11823
+                UserBillEnum::CATEGORY['NowMoney']['code'],
11824
+                UserBillEnum::TYPE['Commission']['code'],
11825
+                UserBillEnum::SOURCE['ONLINE']['code'],
11826
+                UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11827
+                UserBillEnum::TYPE_SHOP['Platform']['code'],
11828
+                $storeOrderEntity->getOrderId(),
11785
                 '购买商贸区商品赠送养老金'
11829
                 '购买商贸区商品赠送养老金'
11786
             );
11830
             );
11787
 
11831
 
@@ -11882,14 +11926,18 @@ class StoreOrderRepository extends BaseRepository
11882
                     /** @var UserBillRepository $userBillRepository */
11926
                     /** @var UserBillRepository $userBillRepository */
11883
                     $userBillRepository = app()->make(UserBillRepository::class);
11927
                     $userBillRepository = app()->make(UserBillRepository::class);
11884
                     $userBillRepository->addUserBill(
11928
                     $userBillRepository->addUserBill(
11885
-                        $userEntityBySpreadUid->getUid(),
11886
-                        UserBillEnum::TYPE_SHOP['Platform']['code'],
11887
-                        $storeOrderEntity->getOrderId(),
11929
+                        $storeOrderEntity->getUid(),
11888
                         UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
11930
                         UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
11931
+                        UserBillEnum::PM['INCOME']['code'],
11889
                         $brokeragePriceBySpreadUid,
11932
                         $brokeragePriceBySpreadUid,
11933
+                        UserBillEnum::CATEGORY['NowMoney']['code'],
11934
+                        UserBillEnum::TYPE['Commission']['code'],
11935
+                        UserBillEnum::SOURCE['ONLINE']['code'],
11936
+                        UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11937
+                        UserBillEnum::TYPE_SHOP['Platform']['code'],
11938
+                        $storeOrderEntity->getOrderId(),
11890
                         '推广商贸区商品赠送佣金'
11939
                         '推广商贸区商品赠送佣金'
11891
                     );
11940
                     );
11892
-
11893
                     // 初始胡 贡献值
11941
                     // 初始胡 贡献值
11894
                     $gongxianBySpreadUid = bcmul($storeOrderEntity->getConPri(), CommonEnum::ORDER_EARNING_ALLOCATION['CommercialDistrict']['Spread']['Gongxian']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
11942
                     $gongxianBySpreadUid = bcmul($storeOrderEntity->getConPri(), CommonEnum::ORDER_EARNING_ALLOCATION['CommercialDistrict']['Spread']['Gongxian']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
11895
                     // 赠送贡献值
11943
                     // 赠送贡献值
@@ -11925,11 +11973,16 @@ class StoreOrderRepository extends BaseRepository
11925
                         /** @var UserBillRepository $userBillRepository */
11973
                         /** @var UserBillRepository $userBillRepository */
11926
                         $userBillRepository = app()->make(UserBillRepository::class);
11974
                         $userBillRepository = app()->make(UserBillRepository::class);
11927
                         $userBillRepository->addUserBill(
11975
                         $userBillRepository->addUserBill(
11928
-                            $userEntityBySpreadUid->getUid(),
11929
-                            UserBillEnum::TYPE_SHOP['Platform']['code'],
11930
-                            $storeOrderEntity->getOrderId(),
11976
+                            $storeOrderEntity->getUid(),
11931
                             UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11977
                             UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11978
+                            UserBillEnum::PM['INCOME']['code'],
11932
                             $yanglaojinBySpreadUid,
11979
                             $yanglaojinBySpreadUid,
11980
+                            UserBillEnum::CATEGORY['NowMoney']['code'],
11981
+                            UserBillEnum::TYPE['Commission']['code'],
11982
+                            UserBillEnum::SOURCE['ONLINE']['code'],
11983
+                            UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11984
+                            UserBillEnum::TYPE_SHOP['Platform']['code'],
11985
+                            $storeOrderEntity->getOrderId(),
11933
                             '推广商贸区商品获得养老金'
11986
                             '推广商贸区商品获得养老金'
11934
                         );
11987
                         );
11935
                     }
11988
                     }
@@ -11948,11 +12001,16 @@ class StoreOrderRepository extends BaseRepository
11948
                     /** @var UserBillRepository $userBillRepository */
12001
                     /** @var UserBillRepository $userBillRepository */
11949
                     $userBillRepository = app()->make(UserBillRepository::class);
12002
                     $userBillRepository = app()->make(UserBillRepository::class);
11950
                     $userBillRepository->addUserBill(
12003
                     $userBillRepository->addUserBill(
11951
-                        $merchantEntityByLock->getUid(),
11952
-                        UserBillEnum::TYPE_SHOP['Platform']['code'],
11953
-                        $storeOrderEntity->getOrderId(),
12004
+                        $storeOrderEntity->getUid(),
11954
                         UserBillEnum::COMMISSION_TYPE['LOCKED_CUSTOMER']['code'],
12005
                         UserBillEnum::COMMISSION_TYPE['LOCKED_CUSTOMER']['code'],
12006
+                        UserBillEnum::PM['INCOME']['code'],
11955
                         $brokeragePriceByMerId,
12007
                         $brokeragePriceByMerId,
12008
+                        UserBillEnum::CATEGORY['NowMoney']['code'],
12009
+                        UserBillEnum::TYPE['Commission']['code'],
12010
+                        UserBillEnum::SOURCE['ONLINE']['code'],
12011
+                        UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
12012
+                        UserBillEnum::TYPE_SHOP['Platform']['code'],
12013
+                        $storeOrderEntity->getOrderId(),
11956
                         '锁客佣金(精彩生活区商品赠送)'
12014
                         '锁客佣金(精彩生活区商品赠送)'
11957
                     );
12015
                     );
11958
 
12016
 
@@ -12023,15 +12081,10 @@ class StoreOrderRepository extends BaseRepository
12023
             $userBillRepository = app()->make(UserBillRepository::class);
12081
             $userBillRepository = app()->make(UserBillRepository::class);
12024
             $userBillEntityList = $userBillRepository->getUserBillEntityListByOrderIdListAndPending(UserBillEnum::TYPE_SHOP['Platform']['code'], $existOrderIdList);
12082
             $userBillEntityList = $userBillRepository->getUserBillEntityListByOrderIdListAndPending(UserBillEnum::TYPE_SHOP['Platform']['code'], $existOrderIdList);
12025
             if (!empty($userBillEntityList)) {
12083
             if (!empty($userBillEntityList)) {
12026
-                foreach ($userBillEntityList as $userBillEntity) {
12027
-                    if ($userBillEntity->getCommissionType() == UserBillEnum::COMMISSION_TYPE['PENSION']['code']) {
12028
-                        // 养老金
12029
-                        $userEntity = $userRepository->getUserEntityByUid($userBillEntity->getUid());
12030
-
12031
-                    } else if ($userBillEntity->getCommissionType() == UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code']) {
12032
-                        // 直推奖 佣金
12033
-                    }
12034
-                }
12084
+                $billIdList = array_map(function ($userBillEntity) {
12085
+                    return $userBillEntity->getBillId();
12086
+                }, $userBillEntityList);
12087
+                $userBillRepository->executeByIdList($billIdList);
12035
             }
12088
             }
12036
 
12089
 
12037
 
12090
 

+ 82 - 49
app/common/repositories/user/UserBillRepository.php

@@ -18,6 +18,7 @@ use app\common\model\user\UserBill;
18
 use app\common\repositories\BaseRepository;
18
 use app\common\repositories\BaseRepository;
19
 use app\common\repositories\store\order\StoreOrderRepository;
19
 use app\common\repositories\store\order\StoreOrderRepository;
20
 use app\entity\data\user\UserBillEntity;
20
 use app\entity\data\user\UserBillEntity;
21
+use app\entity\data\user\UserEntity;
21
 use app\utils\ArrayUtil;
22
 use app\utils\ArrayUtil;
22
 use think\db\exception\DbException;
23
 use think\db\exception\DbException;
23
 use think\exception\ValidateException;
24
 use think\exception\ValidateException;
@@ -382,11 +383,17 @@ class UserBillRepository extends BaseRepository
382
     /**
383
     /**
383
      * 添加 bill 数据
384
      * 添加 bill 数据
384
      * @param int $uid
385
      * @param int $uid
385
-     * @param int $typeShop
386
-     * @param int $orderId
387
      * @param int $commissionType
386
      * @param int $commissionType
387
+     * @param int $pm
388
      * @param float $number
388
      * @param float $number
389
+     * @param string $category
390
+     * @param string $type
391
+     * @param string $source
392
+     * @param int $orderType
393
+     * @param int $typeShop
394
+     * @param int $orderId
389
      * @param string $mark
395
      * @param string $mark
396
+     * @param string $title
390
      * @return UserBillEntity
397
      * @return UserBillEntity
391
      */
398
      */
392
     public function addUserBill(int $uid, int $commissionType, int $pm, float $number, string $category, string $type, string $source, int $orderType, int $typeShop = 0, int $orderId = 0, string $mark = '', string $title = ''): UserBillEntity
399
     public function addUserBill(int $uid, int $commissionType, int $pm, float $number, string $category, string $type, string $source, int $orderType, int $typeShop = 0, int $orderId = 0, string $mark = '', string $title = ''): UserBillEntity
@@ -451,24 +458,24 @@ class UserBillRepository extends BaseRepository
451
      */
458
      */
452
     public function getUserBillEntityByBillId(int $billId): UserBillEntity
459
     public function getUserBillEntityByBillId(int $billId): UserBillEntity
453
     {
460
     {
454
-        /** @var UserBillEntity $entity */
455
-        $entity = $this->dao->getUserBillEntityByBillId($billId);
456
-        return $entity;
461
+        $entityList = $this->getUserBillEntityListByBillIdList([$billId]);
462
+        $entity = array_shift($entityList);
463
+        if ($entity instanceof UserBillEntity) {
464
+            return $entity;
465
+        } else {
466
+            /** @var UserBillEntity */
467
+            return UserBillEntity::newInstance();
468
+        }
457
     }
469
     }
458
 
470
 
459
     /**
471
     /**
460
-     * 更新记录的状态
461
-     * @param int $billId
462
-     * @param int $status
463
-     * @return int
472
+     * 获取Bill实体集合 根据 Id集合
473
+     * @param array $billIdList
474
+     * @return UserBillEntity[]
464
      */
475
      */
465
-    public function updateStatusByBillId(int $billId, int $status): int
476
+    public function getUserBillEntityListByBillIdList(array $billIdList): array
466
     {
477
     {
467
-        try {
468
-            return $this->dao->update($billId, ['status' => $status]);
469
-        } catch (DbException $e) {
470
-            throw new ValidateException('更新记录状态失败');
471
-        }
478
+        return $this->dao->getUserBillEntityListByBillIdList($billIdList);
472
     }
479
     }
473
 
480
 
474
     /**
481
     /**
@@ -482,47 +489,73 @@ class UserBillRepository extends BaseRepository
482
         return $this->dao->getUserBillEntityListByOrderIdListAndPending($typeShop, $orderIdList);
489
         return $this->dao->getUserBillEntityListByOrderIdListAndPending($typeShop, $orderIdList);
483
     }
490
     }
484
 
491
 
492
+
485
     /**
493
     /**
486
-     * 将 Vr 记录设置为生效状态 并对用户的 Vr 字段进行增减
487
-     * @param int $id
494
+     * 将 账单 记录设置为生效状态 并对用户的 对应 字段进行增减
495
+     * @param array $idList
488
      * @return UserBillEntity
496
      * @return UserBillEntity
489
      */
497
      */
490
-    public function execute(int $id): UserBillEntity
498
+    public function executeByIdList(array $idList): UserBillEntity
491
     {
499
     {
492
-        $UserBillEntity = $this->getUserBillEntityByBillId($id);
493
-        if (empty($UserBillEntity->getBillId()) || empty($UserBillEntity->getUid())) {
494
-            throw new ValidateException('无效的账单记录');
495
-        }
496
-        if (!empty($UserBillEntity->getTakeTime())) {
497
-            throw new ValidateException('该账单记录已更新,请勿重复操作');
498
-        }
500
+        $userBillEntityList = $this->getUserBillEntityListByBillIdList($idList);
501
+        if (!empty($userBillEntityList)) {
502
+            $userIdList = array_map(function ($userBillEntity) {
503
+                return $userBillEntity->getUid();
504
+            }, $userBillEntityList);
505
+            /** @var UserEntity[] $userEntityList */
506
+            $userEntityList = [];
507
+            $userEntityMapByUid = [];
508
+
509
+            if (!empty($userIdList)) {
510
+                /** @var UserRepository $userRepository */
511
+                $userRepository = app()->make(UserRepository::class);
512
+                $userEntityList = $userRepository->getUserEntityListByUidList($userIdList);
513
+                $userEntityMapByUid = array_map(function ($userEntity) {
514
+
515
+                }, $userEntityList);
516
+            }
499
 
517
 
500
-        /** @var UserRepository $userRepository */
501
-        $userRepository = app()->make(UserRepository::class);
502
-        $userEntity = $userRepository->getUserEntityByUid($UserBillEntity->getUid());
503
-        if (empty($userEntity->getUid())) {
504
-            throw new ValidateException('未查询到用户信息');
505
-        }
506
-        if ($UserBillEntity->getType() == UserBill::TYPE['Consume']['code']) {
507
-            $surplus = bcsub($userEntity->getVr(), $UserBillEntity->getNumber(), 2);
508
-            if ($surplus < 0.00) {
509
-                throw new ValidateException('用户VR不足');
518
+            foreach ($userBillEntityList as $userBillEntity) {
519
+                if (empty($userBillEntity->getBillId()) || empty($userBillEntity->getUid())) {
520
+                    throw new ValidateException('无效的账单记录');
521
+                }
522
+                if (!empty($userBillEntity->getTakeTime())) {
523
+                    throw new ValidateException('该账单记录已更新,请勿重复操作');
524
+                }
525
+
526
+                $userEntity = $userRepository->getUserEntityByUid($userBillEntity->getUid());
527
+                if (empty($userEntity->getUid())) {
528
+                    throw new ValidateException('未查询到用户信息');
529
+                }
530
+                if ($userBillEntity->getType() == UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code']) {
531
+                    // 直推奖
532
+                    $surplus = bcsub($userEntity->getVr(), $userBillEntity->getNumber(), 2);
533
+                    if ($surplus < 0.00) {
534
+                        throw new ValidateException('用户VR不足');
535
+                    }
536
+                } else {
537
+                    $surplus = bcadd($userEntity->getVr(), $userBillEntity->getNumber(), 2);
538
+                }
539
+
540
+
541
+                try {
542
+                    $userBillEntity
543
+                        ->setSurplus($surplus)
544
+                        ->setSettlementTime(date('Y-m-d H:i:s'));
545
+                    $userRepository->update($userEntity->getUid(), ['vr' => $surplus]);
546
+                    $this->dao->update($userBillEntity->getId(), [
547
+                        'surplus' => $userBillEntity->getSurplus(),
548
+                        'settlement_time' => $userBillEntity->getSettlementTime()
549
+                    ]);
550
+                } catch (DbException $e) {
551
+
552
+                }
510
             }
553
             }
511
-        } else {
512
-            $surplus = bcadd($userEntity->getVr(), $UserBillEntity->getNumber(), 2);
513
         }
554
         }
514
-        try {
515
-            $UserBillEntity
516
-                ->setSurplus($surplus)
517
-                ->setSettlementTime(date('Y-m-d H:i:s'));
518
-            $userRepository->update($userEntity->getUid(), ['vr' => $surplus]);
519
-            $this->dao->update($UserBillEntity->getId(), [
520
-                'surplus' => $UserBillEntity->getSurplus(),
521
-                'settlement_time' => $UserBillEntity->getSettlementTime()
522
-            ]);
523
-        } catch (DbException $e) {
524
 
555
 
525
-        }
526
-        return $UserBillEntity;
556
+
557
+
558
+
559
+        return $userBillEntity;
527
     }
560
     }
528
 }
561
 }

+ 18 - 3
app/common/repositories/user/UserRepository.php

@@ -4399,9 +4399,24 @@ class UserRepository extends BaseRepository
4399
      */
4399
      */
4400
     public function getUserEntityByUid(int $uid): UserEntity
4400
     public function getUserEntityByUid(int $uid): UserEntity
4401
     {
4401
     {
4402
-        /** @var UserEntity $userEntity */
4403
-        $userEntity = $this->dao->getUserEntityByUid($uid);
4404
-        return $userEntity;
4402
+        $entityList = $this->getUserEntityListByUidList([$uid]);
4403
+        $entity = array_shift($entityList);
4404
+        if ($entity instanceof UserEntity) {
4405
+            return $entity;
4406
+        } else {
4407
+            /** @var UserEntity */
4408
+            return UserEntity::newInstance();
4409
+        }
4410
+    }
4411
+
4412
+    /**
4413
+     * 获取用户实体集合 根据 uid集合
4414
+     * @param array $uidList
4415
+     * @return UserEntity[]
4416
+     */
4417
+    public function getUserEntityListByUidList(array $uidList): array
4418
+    {
4419
+        return $this->dao->getUserEntityListByUidList($uidList);
4405
     }
4420
     }
4406
 
4421
 
4407
     /**
4422
     /**