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

共富体系-下单及奖励发放完成-待测试

sunxbiao месяцев назад: 6
Родитель
Сommit
13803c35e1

+ 51 - 1
app/common/dao/shared/SharedProsperityRewardRecordDao.php

@@ -3,12 +3,19 @@
3 3
 namespace app\common\dao\shared;
4 4
 
5 5
 use app\common\dao\BaseDao;
6
+use app\common\enum\shared\SharedProsperityRewardRecordEnum;
7
+use app\common\model\BaseModel;
6 8
 use app\common\model\shared\SharedProsperityRewardRecord;
7 9
 use app\entity\data\shared\SharedProsperityRewardRecordEntity;
10
+use think\db\exception\DataNotFoundException;
11
+use think\db\exception\DbException;
12
+use think\db\exception\ModelNotFoundException;
8 13
 
9 14
 class SharedProsperityRewardRecordDao extends BaseDao
10 15
 {
11
-
16
+    /**
17
+     * @return BaseModel
18
+     */
12 19
     protected function getModel(): string
13 20
     {
14 21
         return SharedProsperityRewardRecord::class;
@@ -38,4 +45,47 @@ class SharedProsperityRewardRecordDao extends BaseDao
38 45
         }
39 46
         return $entityList;
40 47
     }
48
+
49
+    /**
50
+     * 批量更新
51
+     * @param $dataList
52
+     * @return array
53
+     */
54
+    public function saveAll($dataList): array
55
+    {
56
+        try {
57
+            return $this->getModel()::getInstance()->allowField(array_keys(reset($dataList)))->saveAll($dataList)->toArray();
58
+        } catch (\Exception $e) {
59
+            return [];
60
+        }
61
+    }
62
+
63
+    /**
64
+     * @param string $typeShop
65
+     * @param array $orderSnList
66
+     * @return SharedProsperityRewardRecordEntity[]
67
+     */
68
+    public function getSharedProsperityRewardRecordEntityListByOrderSnListAndPending(string $typeShop, array $orderSnList): array
69
+    {
70
+        $entityList = [];
71
+        try {
72
+            /** @var SharedProsperityRewardRecord $model */
73
+            $model = $this->getModel();
74
+            $dataList = $model::getDB()
75
+                ->where('type_shop', '=', $typeShop)
76
+                ->whereIn('order_sn', $orderSnList)
77
+                ->where('status', '=', SharedProsperityRewardRecordEnum::STATUS['PENDING']['code'])
78
+                ->select()
79
+                ->toArray();
80
+
81
+            if (!empty($dataList)) {
82
+                $entityList = array_map(function ($data) {
83
+                    return SharedProsperityRewardRecordEntity::newInstance($data);
84
+                }, $dataList);
85
+            }
86
+        } catch (DataNotFoundException|ModelNotFoundException|DbException $e) {
87
+
88
+        }
89
+        return $entityList;
90
+    }
41 91
 }

+ 18 - 0
app/common/dao/shared/SharedProsperityUserDao.php

@@ -3,12 +3,16 @@
3 3
 namespace app\common\dao\shared;
4 4
 
5 5
 use app\common\dao\BaseDao;
6
+use app\common\model\BaseModel;
6 7
 use app\common\model\shared\SharedProsperityUser;
7 8
 use app\entity\data\shared\SharedProsperityUserEntity;
8 9
 
9 10
 class SharedProsperityUserDao extends BaseDao
10 11
 {
11 12
 
13
+    /**
14
+     * @return BaseModel
15
+     */
12 16
     protected function getModel(): string
13 17
     {
14 18
         return SharedProsperityUser::class;
@@ -220,4 +224,18 @@ class SharedProsperityUserDao extends BaseDao
220 224
             return ['data' => [], 'total' => 0, 'per_page' => $pageSize, 'current_page' => $page, 'last_page' => 1];
221 225
         }
222 226
     }
227
+
228
+    /**
229
+     * 批量更新
230
+     * @param $dataList
231
+     * @return array
232
+     */
233
+    public function saveAll($dataList): array
234
+    {
235
+        try {
236
+            return $this->getModel()::getInstance()->allowField(array_keys(reset($dataList)))->saveAll($dataList)->toArray();
237
+        } catch (\Exception $e) {
238
+            return [];
239
+        }
240
+    }
223 241
 }

+ 6 - 0
app/common/enum/shared/SharedProsperityRewardRecordEnum.php

@@ -6,6 +6,12 @@ use app\common\enum\CommonEnum;
6 6
 
7 7
 class SharedProsperityRewardRecordEnum extends CommonEnum
8 8
 {
9
+    // 收支类型
10
+    const PM = [
11
+        'EXPEND' => ['code' => 0, 'name' => '支出'],
12
+        'INCOME' => ['code' => 1, 'name' => '获得'],
13
+    ];
14
+
9 15
     // 明细类型  commission佣金
10 16
     const TYPE = [
11 17
         'CONSUMER_STOCKS' => ['code' => 1001, 'name' => '共富体系消费股'],

+ 70 - 56
app/common/repositories/shared/SharedProsperityRewardRecordRepository.php

@@ -101,13 +101,14 @@ class SharedProsperityRewardRecordRepository extends BaseRepository
101 101
      * 添加 共富体系奖励记录
102 102
      * @param int $uid
103 103
      * @param int $type
104
+     * @param int $pm
104 105
      * @param float $number
105 106
      * @param int $typeShop
106 107
      * @param string $orderSn
107 108
      * @param string $remark
108 109
      * @return SharedProsperityRewardRecordEntity
109 110
      */
110
-    public function addSharedProsperityRewardRecord(int $uid, int $type, float $number, int $typeShop = 0, string $orderSn = '', string $remark = ''): SharedProsperityRewardRecordEntity
111
+    public function addSharedProsperityRewardRecord(int $uid, int $type, int $pm, float $number, int $typeShop = 0, string $orderSn = '', string $remark = ''): SharedProsperityRewardRecordEntity
111 112
     {
112 113
         if ($typeShop == SharedProsperityRewardRecordEnum::TYPE_SHOP['Platform']['code']) {
113 114
             /** @var StoreOrderRepository $storeOrderRepository */
@@ -121,8 +122,8 @@ class SharedProsperityRewardRecordRepository extends BaseRepository
121 122
         /** @var SharedProsperityRewardRecordEntity $sharedProsperityRewardRecordEntity */
122 123
         $sharedProsperityRewardRecordEntity = SharedProsperityRewardRecordEntity::newInstance();
123 124
         $sharedProsperityRewardRecordEntity->setUserId($uid)
124
-            //UserBillEnum::PM['INCOME']['code']
125 125
             ->setType($type)
126
+            ->setPm($pm)
126 127
             ->setNumber($number)
127 128
             ->setStatus(SharedProsperityRewardRecordEnum::STATUS['PENDING']['code'])
128 129
             ->setTypeShop($typeShop)
@@ -133,6 +134,25 @@ class SharedProsperityRewardRecordRepository extends BaseRepository
133 134
     }
134 135
 
135 136
     /**
137
+     * @param string $typeShop
138
+     * @param array $orderSnList
139
+     * @return SharedProsperityRewardRecordEntity[]
140
+     */
141
+    public function getSharedProsperityRewardRecordEntityListByOrderSnListAndPending(string $typeShop, array $orderSnList): array
142
+    {
143
+        return $this->dao->getSharedProsperityRewardRecordEntityListByOrderSnListAndPending($typeShop, $orderSnList);
144
+    }
145
+
146
+    /**
147
+     * @param $dataList
148
+     * @return array
149
+     */
150
+    public function batchUpdateSharedProsperityRewardRecordDataByDataList($dataList): array
151
+    {
152
+        return $this->dao->saveAll($dataList);
153
+    }
154
+
155
+    /**
136 156
      * 结算 共富体系奖励记录
137 157
      * @param array $idList
138 158
      * @return array
@@ -141,7 +161,7 @@ class SharedProsperityRewardRecordRepository extends BaseRepository
141 161
     {
142 162
         $sharedProsperityRewardRecordEntityList = $this->getSharedProsperityRewardRecordEntityListByIdList($idList);
143 163
         // 忽略 已经生效的 记录
144
-        $sharedProsperityRewardRecordEntityList = array_filter($sharedProsperityRewardRecordEntityList, function($entity) {
164
+        $sharedProsperityRewardRecordEntityList = array_filter($sharedProsperityRewardRecordEntityList, function ($entity) {
145 165
             return $entity->getStatus() != SharedProsperityRewardRecordEnum::STATUS['VALID']['code'];
146 166
         });
147 167
 
@@ -179,83 +199,77 @@ class SharedProsperityRewardRecordRepository extends BaseRepository
179 199
                 // 更新 用户信息
180 200
                 /** @var SharedProsperityUserEntity $updateSharedProsperityUserEntity */
181 201
                 $updateSharedProsperityUserEntity = $updateSharedProsperityUserEntityList[$sharedProsperityUserEntity->getUserId()] ?? SharedProsperityUserEntity::newInstance();
182
-                $updateSharedProsperityUserEntity->setId();
202
+                $updateSharedProsperityUserEntity->setId($sharedProsperityUserEntity->getId());
183 203
 
184 204
                 // 更新 账单 记录
185 205
                 /** @var SharedProsperityRewardRecordEntity $updateSharedProsperityRewardRecord */
186 206
                 $updateSharedProsperityRewardRecord = $updateSharedProsperityRewardRecordEntityList[$sharedProsperityRewardRecordEntity->getId()] ?? SharedProsperityRewardRecordEntity::newInstance();
187 207
                 // 更新 账单记录 状态
188 208
                 $updateSharedProsperityRewardRecord
189
-                    ->setId($sharedProsperityRewardRecordEntity->getBillId())
190
-                    ->setStatus(UserBillEnum::STATUS['VALID']['code'])
191
-                    ->setTakeTime(time());
209
+                    ->setId($sharedProsperityRewardRecordEntity->getId())
210
+                    ->setStatus(SharedProsperityRewardRecordEnum::STATUS['VALID']['code'])
211
+                    ->setTakeTime(date('Y-m-d H:i:s'));
192 212
 
193
-                if ($sharedProsperityRewardRecordEntity->getCommissionType() == UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code']) {
194
-                    // 直推奖
195
-                    if (is_null($updateSharedProsperityUserEntity->getBrokeragePrice())) {
196
-                        $updateSharedProsperityUserEntity->setBrokeragePrice($sharedProsperityUserEntity->getBrokeragePrice());
213
+                if ($sharedProsperityRewardRecordEntity->getType() == SharedProsperityRewardRecordEnum::TYPE['CONSUMER_STOCKS']['code']) {
214
+                    // 消费股
215
+                    if (is_null($updateSharedProsperityUserEntity->getConsumerStocks())) {
216
+                        $updateSharedProsperityUserEntity->setConsumerStocks($sharedProsperityUserEntity->getConsumerStocks());
197 217
                     }
198 218
                     // 更新用户 佣金 信息
199
-                    if ($sharedProsperityRewardRecordEntity->getPm() == UserBillEnum::PM['EXPEND']['code']) {
200
-                        if ($updateSharedProsperityUserEntity->getBrokeragePrice() < $sharedProsperityRewardRecordEntity->getNumber()) {
201
-                            throw new ValidateException('用户佣金不足');
219
+                    if ($sharedProsperityRewardRecordEntity->getPm() == SharedProsperityRewardRecordEnum::PM['EXPEND']['code']) {
220
+                        if ($updateSharedProsperityUserEntity->getConsumerStocks() < $sharedProsperityRewardRecordEntity->getNumber()) {
221
+                            throw new ValidateException('用户剩余消费股不足');
202 222
                         }
203
-                        $updateSharedProsperityUserEntity->setBrokeragePrice(bcsub($updateSharedProsperityUserEntity->getBrokeragePrice(), $sharedProsperityRewardRecordEntity->getNumber(), 2));
223
+                        $updateSharedProsperityUserEntity->setConsumerStocks(bcsub($updateSharedProsperityUserEntity->getConsumerStocks(), $sharedProsperityRewardRecordEntity->getNumber(), 2));
204 224
                     } else {
205
-                        $updateSharedProsperityUserEntity->setBrokeragePrice(bcadd($updateSharedProsperityUserEntity->getBrokeragePrice(), $sharedProsperityRewardRecordEntity->getNumber(), 2));
225
+                        $updateSharedProsperityUserEntity->setConsumerStocks(bcadd($updateSharedProsperityUserEntity->getConsumerStocks(), $sharedProsperityRewardRecordEntity->getNumber(), 2));
206 226
                     }
207 227
 
208
-                } else if ($sharedProsperityRewardRecordEntity->getCommissionType() == UserBillEnum::COMMISSION_TYPE['PENSION']['code']) {
209
-
210
-                    if ($sharedProsperityRewardRecordEntity->getGzc() == UserBillEnum::GZC_STATUS['NOT_ENTERED']['code']) {
211
-                        if (!empty($userCertificationEntityMapByUid[$sharedProsperityRewardRecordEntity->getUid()])) {
212
-                            $userCertificationEntity = $userCertificationEntityMapByUid[$sharedProsperityRewardRecordEntity->getUid()];
213
-                            // 创建公证处记录
214
-                            $gzcLogRepository->addGzcLog(
215
-                                $userCertificationEntity->getUid(),
216
-                                $userCertificationEntity->getUserName(),
217
-                                $userCertificationEntity->getMobile(),
218
-                                $userCertificationEntity->getUserCard(),
219
-                                $sharedProsperityRewardRecordEntity->getTypeShop(),
220
-                                $sharedProsperityRewardRecordEntity->getLinkId(),
221
-                                $sharedProsperityRewardRecordEntity->getNumber()
222
-                            );
223
-
224
-                            // 养老金
225
-                            if (is_null($updateSharedProsperityUserEntity->getAnnuity())) {
226
-                                $updateSharedProsperityUserEntity->setAnnuity($sharedProsperityUserEntity->getAnnuity());
227
-                            }
228
-                            $updateSharedProsperityUserEntity->setAnnuity(bcadd($updateSharedProsperityUserEntity->getAnnuity(), $sharedProsperityRewardRecordEntity->getNumber(), 2));
229
-
230
-                            // 几笔养老金
231
-                            if (is_null($updateSharedProsperityUserEntity->getAnnuityNum())) {
232
-                                $updateSharedProsperityUserEntity->setAnnuityNum($sharedProsperityUserEntity->getAnnuityNum());
233
-                            }
234
-                            $updateSharedProsperityUserEntity->setAnnuityNum(bcadd($updateSharedProsperityUserEntity->getAnnuityNum(), 1));
235
-
236
-                            // 更新佣金记录
237
-                            $updateSharedProsperityRewardRecord
238
-                                ->setGzc(UserBillEnum::GZC_STATUS['ENTERED']['code'])
239
-                                ->setIsGzc(UserBillEnum::IS_GZC['NOT_STARTED']['code']);
228
+                } else if ($sharedProsperityRewardRecordEntity->getType() == SharedProsperityRewardRecordEnum::TYPE['WITHDRAWAL_LIMIT']['code']) {
229
+                    // 提现额度
230
+                    if (is_null($updateSharedProsperityUserEntity->getWithdrawalLimit())) {
231
+                        $updateSharedProsperityUserEntity->setWithdrawalLimit($sharedProsperityUserEntity->getWithdrawalLimit());
232
+                    }
233
+                    // 更新用户 佣金 信息
234
+                    if ($sharedProsperityRewardRecordEntity->getPm() == SharedProsperityRewardRecordEnum::PM['EXPEND']['code']) {
235
+                        if ($updateSharedProsperityUserEntity->getWithdrawalLimit() < $sharedProsperityRewardRecordEntity->getNumber()) {
236
+                            throw new ValidateException('用户剩余提现额度不足');
240 237
                         }
238
+                        $updateSharedProsperityUserEntity->setWithdrawalLimit(bcsub($updateSharedProsperityUserEntity->getWithdrawalLimit(), $sharedProsperityRewardRecordEntity->getNumber(), 2));
239
+                    } else {
240
+                        $updateSharedProsperityUserEntity->setWithdrawalLimit(bcadd($updateSharedProsperityUserEntity->getWithdrawalLimit(), $sharedProsperityRewardRecordEntity->getNumber(), 2));
241
+                    }
242
+                } else if ($sharedProsperityRewardRecordEntity->getType() == SharedProsperityRewardRecordEnum::TYPE['PV']['code']) {
243
+                    // 提现额度
244
+                    if (is_null($updateSharedProsperityUserEntity->getPv())) {
245
+                        $updateSharedProsperityUserEntity->setPv($sharedProsperityUserEntity->getPv());
246
+                    }
247
+                    // 更新用户 佣金 信息
248
+                    if ($sharedProsperityRewardRecordEntity->getPm() == SharedProsperityRewardRecordEnum::PM['EXPEND']['code']) {
249
+                        if ($updateSharedProsperityUserEntity->getPv() < $sharedProsperityRewardRecordEntity->getNumber()) {
250
+                            throw new ValidateException('用户剩余PV不足');
251
+                        }
252
+                        $updateSharedProsperityUserEntity->setPv(bcsub($updateSharedProsperityUserEntity->getPv(), $sharedProsperityRewardRecordEntity->getNumber(), 2));
253
+                    } else {
254
+                        $updateSharedProsperityUserEntity->setPv(bcadd($updateSharedProsperityUserEntity->getPv(), $sharedProsperityRewardRecordEntity->getNumber(), 2));
241 255
                     }
242 256
                 }
243 257
 
244
-                $updateSharedProsperityUserEntityList[$sharedProsperityUserEntity->getUid()] = $updateSharedProsperityUserEntity;
245
-                $updateSharedProsperityRewardRecordEntityList[$sharedProsperityRewardRecordEntity->getBillId()] = $updateSharedProsperityRewardRecord;
258
+                $updateSharedProsperityUserEntityList[$sharedProsperityUserEntity->getUserId()] = $updateSharedProsperityUserEntity;
259
+                $updateSharedProsperityRewardRecordEntityList[$sharedProsperityRewardRecordEntity->getId()] = $updateSharedProsperityRewardRecord;
246 260
             }
247 261
             if (!empty($updateSharedProsperityUserEntityList)) {
248
-                $sharedProsperityUserRepository->batchUpdateUserDataByDataList(
249
-                    array_map(function (UserEntity $updateUserEntity) {
250
-                        return $updateUserEntity->toUnderlineArray();
262
+                $sharedProsperityUserRepository->batchUpdateSharedProsperityUserDataByDataList(
263
+                    array_map(function (SharedProsperityUserEntity $updateSharedProsperityUserEntity) {
264
+                        return $updateSharedProsperityUserEntity->toUnderlineArray();
251 265
                     }, $updateSharedProsperityUserEntityList)
252 266
                 );
253 267
             }
254 268
 
255 269
             if (!empty($updateSharedProsperityRewardRecordEntityList)) {
256
-                $this->batchUpdateUserBillDataByDataList(
257
-                    array_map(function (UserBillEntity $updateUserBillEntity) {
258
-                        return $updateUserBillEntity->toUnderlineArray();
270
+                $this->batchUpdateSharedProsperityRewardRecordDataByDataList(
271
+                    array_map(function (SharedProsperityRewardRecordEntity $updateSharedProsperityRewardRecordEntity) {
272
+                        return $updateSharedProsperityRewardRecordEntity->toUnderlineArray();
259 273
                     }, $updateSharedProsperityRewardRecordEntityList)
260 274
                 );
261 275
             }

+ 10 - 0
app/common/repositories/shared/SharedProsperityUserRepository.php

@@ -235,4 +235,14 @@ class SharedProsperityUserRepository extends BaseRepository
235 235
             ]
236 236
         ];
237 237
     }
238
+
239
+    /**
240
+     * 批量更新
241
+     * @param $dataList
242
+     * @return array
243
+     */
244
+    public function batchUpdateSharedProsperityUserDataByDataList($dataList): array
245
+    {
246
+        return $this->dao->saveAll($dataList);
247
+    }
238 248
 }

+ 68 - 15
app/common/repositories/store/order/StoreOrderRepository.php

@@ -26,6 +26,7 @@ use app\common\dao\util\TableOpsDao;
26 26
 use app\common\dao\backup\BackupStoreOrderDao;
27 27
 use app\common\enum\CommonEnum;
28 28
 use app\common\enum\merchant\MerchantEnum;
29
+use app\common\enum\shared\SharedProsperityRewardRecordEnum;
29 30
 use app\common\enum\shipping\ShippingTemplateEnum;
30 31
 use app\common\enum\store\CartEnum;
31 32
 use app\common\enum\store\ProductEnum;
@@ -53,6 +54,7 @@ use app\common\repositories\BaseRepository;
53 54
 use app\common\repositories\product\ProductSeckillRepository;
54 55
 use app\common\repositories\product\ShareRepository;
55 56
 use app\common\repositories\shared\SharedProsperityRecommendConfigRepository;
57
+use app\common\repositories\shared\SharedProsperityRewardRecordRepository;
56 58
 use app\common\repositories\shared\SharedProsperityUserRepository;
57 59
 use app\common\repositories\store\coupon\StoreCouponProductRepository;
58 60
 use app\common\repositories\store\coupon\StoreCouponRepository;
@@ -11585,22 +11587,46 @@ class StoreOrderRepository extends BaseRepository
11585 11587
             );
11586 11588
 
11587 11589
             // 发放消费股
11588
-            $userBillRepository->addUserBill(
11590
+            $consumerStocks = bcmul($storeOrderEntity->getTotalPrice(), CommonEnum::ORDER_EARNING_ALLOCATION['SharedProsperity']['Self']['ConsumerStocks']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
11591
+            /** @var SharedProsperityRewardRecordRepository $sharedProsperityRewardRecordRepository */
11592
+            $sharedProsperityRewardRecordRepository = app()->make(SharedProsperityRewardRecordRepository::class);
11593
+            $sharedProsperityRewardRecordRepository->addSharedProsperityRewardRecord(
11589 11594
                 $sharedProsperityUserEntity->getUserId(),
11590
-                UserBillEnum::COMMISSION_TYPE['PENSION']['code'],
11591
-                UserBillEnum::PM['INCOME']['code'],
11592
-                $yanglaojin,
11593
-                UserBillEnum::CATEGORY['NowMoney']['code'],
11594
-                UserBillEnum::TYPE['Commission']['code'],
11595
-                UserBillEnum::SOURCE['ONLINE']['code'],
11596
-                UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11597
-                UserBillEnum::TYPE_SHOP['Platform']['code'],
11598
-                $storeOrderEntity->getOrderId(),
11599
-                '购买共富区商品获得养老金'
11595
+                SharedProsperityRewardRecordEnum::TYPE['CONSUMER_STOCKS']['code'],
11596
+                SharedProsperityRewardRecordEnum::PM['INCOME']['code'],
11597
+                $consumerStocks,
11598
+                SharedProsperityRewardRecordEnum::TYPE_SHOP['Platform']['code'],
11599
+                $storeOrderEntity->getOrderSn(),
11600
+                '购买共富区商品获得消费股'
11600 11601
             );
11601 11602
 
11602
-
11603 11603
             // 发放提现额度
11604
+            $withdrawalLimit = bcmul($storeOrderEntity->getTotalPrice(), CommonEnum::ORDER_EARNING_ALLOCATION['SharedProsperity']['Self']['WithdrawalLimit']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
11605
+            /** @var SharedProsperityRewardRecordRepository $sharedProsperityRewardRecordRepository */
11606
+            $sharedProsperityRewardRecordRepository = app()->make(SharedProsperityRewardRecordRepository::class);
11607
+            $sharedProsperityRewardRecordRepository->addSharedProsperityRewardRecord(
11608
+                $sharedProsperityUserEntity->getUserId(),
11609
+                SharedProsperityRewardRecordEnum::TYPE['WITHDRAWAL_LIMIT']['code'],
11610
+                SharedProsperityRewardRecordEnum::PM['INCOME']['code'],
11611
+                $withdrawalLimit,
11612
+                SharedProsperityRewardRecordEnum::TYPE_SHOP['Platform']['code'],
11613
+                $storeOrderEntity->getOrderSn(),
11614
+                '购买共富区商品获得提现额度'
11615
+            );
11616
+
11617
+            // 发放共富区PV
11618
+            $pv = bcmul($storeOrderEntity->getConPri(), CommonEnum::ORDER_EARNING_ALLOCATION['SharedProsperity']['Self']['Pv']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
11619
+            /** @var SharedProsperityRewardRecordRepository $sharedProsperityRewardRecordRepository */
11620
+            $sharedProsperityRewardRecordRepository = app()->make(SharedProsperityRewardRecordRepository::class);
11621
+            $sharedProsperityRewardRecordRepository->addSharedProsperityRewardRecord(
11622
+                $sharedProsperityUserEntity->getUserId(),
11623
+                SharedProsperityRewardRecordEnum::TYPE['PV']['code'],
11624
+                SharedProsperityRewardRecordEnum::PM['INCOME']['code'],
11625
+                $pv,
11626
+                SharedProsperityRewardRecordEnum::TYPE_SHOP['Platform']['code'],
11627
+                $storeOrderEntity->getOrderSn(),
11628
+                '购买共富区商品获得PV'
11629
+            );
11604 11630
 
11605 11631
             if (!empty($sharedProsperityUserEntity->getParentId())) {
11606 11632
                 // 如果 共富区推荐人 不是平台,则为 推荐人发放 推荐奖励
@@ -11624,6 +11650,20 @@ class StoreOrderRepository extends BaseRepository
11624 11650
                         '推广共富区会员消费获得养老金'
11625 11651
                     );
11626 11652
 
11653
+                    // 发放消费股
11654
+                    $consumerStocksBySpread = bcmul($storeOrderEntity->getTotalPrice(), CommonEnum::ORDER_EARNING_ALLOCATION['SharedProsperity']['Spread']['ConsumerStocks']['Ratio']['code'], CommonEnum::DECIMAL_PLACES_OF_THE_AMOUNT);
11655
+                    /** @var SharedProsperityRewardRecordRepository $sharedProsperityRewardRecordRepository */
11656
+                    $sharedProsperityRewardRecordRepository = app()->make(SharedProsperityRewardRecordRepository::class);
11657
+                    $sharedProsperityRewardRecordRepository->addSharedProsperityRewardRecord(
11658
+                        $sharedProsperityUserEntityByParent->getUserId(),
11659
+                        SharedProsperityRewardRecordEnum::TYPE['CONSUMER_STOCKS']['code'],
11660
+                        SharedProsperityRewardRecordEnum::PM['INCOME']['code'],
11661
+                        $consumerStocksBySpread,
11662
+                        SharedProsperityRewardRecordEnum::TYPE_SHOP['Platform']['code'],
11663
+                        $storeOrderEntity->getOrderSn(),
11664
+                        '推广共富区会员消费获得消费股'
11665
+                    );
11666
+
11627 11667
                     // 计算 推广佣金
11628 11668
                     /** @var SharedProsperityRecommendConfigRepository $sharedProsperityRecommendConfigRepository */
11629 11669
                     $sharedProsperityRecommendConfigRepository = app()->make(SharedProsperityRecommendConfigRepository::class);
@@ -11635,7 +11675,7 @@ class StoreOrderRepository extends BaseRepository
11635 11675
                         /** @var UserBillRepository $userBillRepository */
11636 11676
                         $userBillRepository = app()->make(UserBillRepository::class);
11637 11677
                         $userBillRepository->addUserBill(
11638
-                            $sharedProsperityUserEntityByParent->getUid(),
11678
+                            $sharedProsperityUserEntityByParent->getUserId(),
11639 11679
                             UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
11640 11680
                             UserBillEnum::PM['INCOME']['code'],
11641 11681
                             $brokeragePriceBySpreadUid,
@@ -11645,7 +11685,7 @@ class StoreOrderRepository extends BaseRepository
11645 11685
                             UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11646 11686
                             UserBillEnum::TYPE_SHOP['Platform']['code'],
11647 11687
                             $storeOrderEntity->getOrderId(),
11648
-                            '推广共富区商品获得佣金'
11688
+                            '推广共富区会员消费获得佣金'
11649 11689
                         );
11650 11690
                     }
11651 11691
                 }
@@ -11909,9 +11949,11 @@ class StoreOrderRepository extends BaseRepository
11909 11949
 
11910 11950
             // 筛选 未结算的 订单ID
11911 11951
             $unsettledOrderIdList = [];
11952
+            $unsettledOrderSnList = [];
11912 11953
             foreach ($storeOrderEntityList as $storeOrderEntity) {
11913 11954
                 if ($storeOrderEntity->getIsSettlement() == StoreOrderEnum::IS_SETTLEMENT['NO']['code']) {
11914 11955
                     $unsettledOrderIdList[] = $storeOrderEntity->getOrderId();
11956
+                    $unsettledOrderSnList[] = $storeOrderEntity->getOrderSn();
11915 11957
                 }
11916 11958
             }
11917 11959
             if (empty($unsettledOrderIdList)) {
@@ -11930,6 +11972,7 @@ class StoreOrderRepository extends BaseRepository
11930 11972
                     $userBillRepository->executeByIdList($billIdList);
11931 11973
                 }
11932 11974
 
11975
+                /** 结算 复购金 */
11933 11976
                 /** @var UserSignFugouRepository $userSignFugouRepository */
11934 11977
                 $userSignFugouRepository = app()->make(UserSignFugouRepository::class);
11935 11978
                 $userSignFugouEntityList = $userSignFugouRepository->getUserSignFugouEntityListByOrderIdListAndPending(UserSignFugouEnum::ORDER_TYPE['Platform']['code'], $unsettledOrderIdList);
@@ -11937,7 +11980,6 @@ class StoreOrderRepository extends BaseRepository
11937 11980
                     $fugouIdList = array_map(function ($userSignFugouEntity) {
11938 11981
                         return $userSignFugouEntity->getId();
11939 11982
                     }, $userSignFugouEntityList);
11940
-                    // 去结算 养老金 和佣金
11941 11983
                     $userSignFugouRepository->executeByIdList($fugouIdList);
11942 11984
                 }
11943 11985
 
@@ -11984,6 +12026,17 @@ class StoreOrderRepository extends BaseRepository
11984 12026
                     $userSignHongbaoRepository->executeByIdList($userSignHongbaoIdList);
11985 12027
                 }
11986 12028
 
12029
+                /** 结算 共富体系 消费股 提现额度 PV */
12030
+                /** @var SharedProsperityRewardRecordRepository $sharedProsperityRewardRecordRepository */
12031
+                $sharedProsperityRewardRecordRepository = app()->make(SharedProsperityRewardRecordRepository::class);
12032
+                $sharedProsperityRewardRecordEntityList = $sharedProsperityRewardRecordRepository->getSharedProsperityRewardRecordEntityListByOrderSnListAndPending(SharedProsperityRewardRecordEnum::TYPE_SHOP['Platform']['code'], $unsettledOrderSnList);
12033
+                if (!empty($sharedProsperityRewardRecordEntityList)) {
12034
+                    $sharedProsperityRewardRecordIdList = array_map(function ($sharedProsperityRewardRecordEntity) {
12035
+                        return $sharedProsperityRewardRecordEntity->getId();
12036
+                    }, $sharedProsperityRewardRecordEntityList);
12037
+                    $sharedProsperityRewardRecordRepository->executeByIdList($sharedProsperityRewardRecordIdList);
12038
+                }
12039
+
11987 12040
                 // 订单奖励结算时 更新订单自身 结算字段
11988 12041
                 $this->dao->settlementOrderByOrderIdList($unsettledOrderIdList);
11989 12042
             } catch (DbException $e) {

+ 19 - 0
app/entity/data/shared/SharedProsperityRewardRecordEntity.php

@@ -9,6 +9,7 @@ class SharedProsperityRewardRecordEntity extends DataEntity
9 9
     public $id = null;  // ID
10 10
     public $userId = null;  // 用户ID
11 11
     public $type = null;  // 奖励类型
12
+    public $pm = null;  // 奖励类型
12 13
     public $number = null;  // 明细数字
13 14
     public $balance = null;  // 剩余
14 15
     public $status = null;  // 状态
@@ -76,6 +77,24 @@ class SharedProsperityRewardRecordEntity extends DataEntity
76 77
     /**
77 78
      * @return mixed
78 79
      */
80
+    public function getPm()
81
+    {
82
+        return $this->pm;
83
+    }
84
+
85
+    /**
86
+     * @param mixed $pm
87
+     * @return SharedProsperityRewardRecordEntity
88
+     */
89
+    public function setPm($pm): SharedProsperityRewardRecordEntity
90
+    {
91
+        $this->pm = $pm;
92
+        return $this;
93
+    }
94
+
95
+    /**
96
+     * @return mixed
97
+     */
79 98
     public function getNumber()
80 99
     {
81 100
         return $this->number;