Explorar o código

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

sunxbiao hai 6 meses
pai
achega
13803c35e1

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

@@ -3,12 +3,19 @@
3
 namespace app\common\dao\shared;
3
 namespace app\common\dao\shared;
4
 
4
 
5
 use app\common\dao\BaseDao;
5
 use app\common\dao\BaseDao;
6
+use app\common\enum\shared\SharedProsperityRewardRecordEnum;
7
+use app\common\model\BaseModel;
6
 use app\common\model\shared\SharedProsperityRewardRecord;
8
 use app\common\model\shared\SharedProsperityRewardRecord;
7
 use app\entity\data\shared\SharedProsperityRewardRecordEntity;
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
 class SharedProsperityRewardRecordDao extends BaseDao
14
 class SharedProsperityRewardRecordDao extends BaseDao
10
 {
15
 {
11
-
16
+    /**
17
+     * @return BaseModel
18
+     */
12
     protected function getModel(): string
19
     protected function getModel(): string
13
     {
20
     {
14
         return SharedProsperityRewardRecord::class;
21
         return SharedProsperityRewardRecord::class;
@@ -38,4 +45,47 @@ class SharedProsperityRewardRecordDao extends BaseDao
38
         }
45
         }
39
         return $entityList;
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
 namespace app\common\dao\shared;
3
 namespace app\common\dao\shared;
4
 
4
 
5
 use app\common\dao\BaseDao;
5
 use app\common\dao\BaseDao;
6
+use app\common\model\BaseModel;
6
 use app\common\model\shared\SharedProsperityUser;
7
 use app\common\model\shared\SharedProsperityUser;
7
 use app\entity\data\shared\SharedProsperityUserEntity;
8
 use app\entity\data\shared\SharedProsperityUserEntity;
8
 
9
 
9
 class SharedProsperityUserDao extends BaseDao
10
 class SharedProsperityUserDao extends BaseDao
10
 {
11
 {
11
 
12
 
13
+    /**
14
+     * @return BaseModel
15
+     */
12
     protected function getModel(): string
16
     protected function getModel(): string
13
     {
17
     {
14
         return SharedProsperityUser::class;
18
         return SharedProsperityUser::class;
@@ -220,4 +224,18 @@ class SharedProsperityUserDao extends BaseDao
220
             return ['data' => [], 'total' => 0, 'per_page' => $pageSize, 'current_page' => $page, 'last_page' => 1];
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
 class SharedProsperityRewardRecordEnum extends CommonEnum
7
 class SharedProsperityRewardRecordEnum extends CommonEnum
8
 {
8
 {
9
+    // 收支类型
10
+    const PM = [
11
+        'EXPEND' => ['code' => 0, 'name' => '支出'],
12
+        'INCOME' => ['code' => 1, 'name' => '获得'],
13
+    ];
14
+
9
     // 明细类型  commission佣金
15
     // 明细类型  commission佣金
10
     const TYPE = [
16
     const TYPE = [
11
         'CONSUMER_STOCKS' => ['code' => 1001, 'name' => '共富体系消费股'],
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
      * @param int $uid
102
      * @param int $uid
103
      * @param int $type
103
      * @param int $type
104
+     * @param int $pm
104
      * @param float $number
105
      * @param float $number
105
      * @param int $typeShop
106
      * @param int $typeShop
106
      * @param string $orderSn
107
      * @param string $orderSn
107
      * @param string $remark
108
      * @param string $remark
108
      * @return SharedProsperityRewardRecordEntity
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
         if ($typeShop == SharedProsperityRewardRecordEnum::TYPE_SHOP['Platform']['code']) {
113
         if ($typeShop == SharedProsperityRewardRecordEnum::TYPE_SHOP['Platform']['code']) {
113
             /** @var StoreOrderRepository $storeOrderRepository */
114
             /** @var StoreOrderRepository $storeOrderRepository */
@@ -121,8 +122,8 @@ class SharedProsperityRewardRecordRepository extends BaseRepository
121
         /** @var SharedProsperityRewardRecordEntity $sharedProsperityRewardRecordEntity */
122
         /** @var SharedProsperityRewardRecordEntity $sharedProsperityRewardRecordEntity */
122
         $sharedProsperityRewardRecordEntity = SharedProsperityRewardRecordEntity::newInstance();
123
         $sharedProsperityRewardRecordEntity = SharedProsperityRewardRecordEntity::newInstance();
123
         $sharedProsperityRewardRecordEntity->setUserId($uid)
124
         $sharedProsperityRewardRecordEntity->setUserId($uid)
124
-            //UserBillEnum::PM['INCOME']['code']
125
             ->setType($type)
125
             ->setType($type)
126
+            ->setPm($pm)
126
             ->setNumber($number)
127
             ->setNumber($number)
127
             ->setStatus(SharedProsperityRewardRecordEnum::STATUS['PENDING']['code'])
128
             ->setStatus(SharedProsperityRewardRecordEnum::STATUS['PENDING']['code'])
128
             ->setTypeShop($typeShop)
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
      * @param array $idList
157
      * @param array $idList
138
      * @return array
158
      * @return array
@@ -141,7 +161,7 @@ class SharedProsperityRewardRecordRepository extends BaseRepository
141
     {
161
     {
142
         $sharedProsperityRewardRecordEntityList = $this->getSharedProsperityRewardRecordEntityListByIdList($idList);
162
         $sharedProsperityRewardRecordEntityList = $this->getSharedProsperityRewardRecordEntityListByIdList($idList);
143
         // 忽略 已经生效的 记录
163
         // 忽略 已经生效的 记录
144
-        $sharedProsperityRewardRecordEntityList = array_filter($sharedProsperityRewardRecordEntityList, function($entity) {
164
+        $sharedProsperityRewardRecordEntityList = array_filter($sharedProsperityRewardRecordEntityList, function ($entity) {
145
             return $entity->getStatus() != SharedProsperityRewardRecordEnum::STATUS['VALID']['code'];
165
             return $entity->getStatus() != SharedProsperityRewardRecordEnum::STATUS['VALID']['code'];
146
         });
166
         });
147
 
167
 
@@ -179,83 +199,77 @@ class SharedProsperityRewardRecordRepository extends BaseRepository
179
                 // 更新 用户信息
199
                 // 更新 用户信息
180
                 /** @var SharedProsperityUserEntity $updateSharedProsperityUserEntity */
200
                 /** @var SharedProsperityUserEntity $updateSharedProsperityUserEntity */
181
                 $updateSharedProsperityUserEntity = $updateSharedProsperityUserEntityList[$sharedProsperityUserEntity->getUserId()] ?? SharedProsperityUserEntity::newInstance();
201
                 $updateSharedProsperityUserEntity = $updateSharedProsperityUserEntityList[$sharedProsperityUserEntity->getUserId()] ?? SharedProsperityUserEntity::newInstance();
182
-                $updateSharedProsperityUserEntity->setId();
202
+                $updateSharedProsperityUserEntity->setId($sharedProsperityUserEntity->getId());
183
 
203
 
184
                 // 更新 账单 记录
204
                 // 更新 账单 记录
185
                 /** @var SharedProsperityRewardRecordEntity $updateSharedProsperityRewardRecord */
205
                 /** @var SharedProsperityRewardRecordEntity $updateSharedProsperityRewardRecord */
186
                 $updateSharedProsperityRewardRecord = $updateSharedProsperityRewardRecordEntityList[$sharedProsperityRewardRecordEntity->getId()] ?? SharedProsperityRewardRecordEntity::newInstance();
206
                 $updateSharedProsperityRewardRecord = $updateSharedProsperityRewardRecordEntityList[$sharedProsperityRewardRecordEntity->getId()] ?? SharedProsperityRewardRecordEntity::newInstance();
187
                 // 更新 账单记录 状态
207
                 // 更新 账单记录 状态
188
                 $updateSharedProsperityRewardRecord
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
                     } else {
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
             if (!empty($updateSharedProsperityUserEntityList)) {
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
                     }, $updateSharedProsperityUserEntityList)
265
                     }, $updateSharedProsperityUserEntityList)
252
                 );
266
                 );
253
             }
267
             }
254
 
268
 
255
             if (!empty($updateSharedProsperityRewardRecordEntityList)) {
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
                     }, $updateSharedProsperityRewardRecordEntityList)
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
 use app\common\dao\backup\BackupStoreOrderDao;
26
 use app\common\dao\backup\BackupStoreOrderDao;
27
 use app\common\enum\CommonEnum;
27
 use app\common\enum\CommonEnum;
28
 use app\common\enum\merchant\MerchantEnum;
28
 use app\common\enum\merchant\MerchantEnum;
29
+use app\common\enum\shared\SharedProsperityRewardRecordEnum;
29
 use app\common\enum\shipping\ShippingTemplateEnum;
30
 use app\common\enum\shipping\ShippingTemplateEnum;
30
 use app\common\enum\store\CartEnum;
31
 use app\common\enum\store\CartEnum;
31
 use app\common\enum\store\ProductEnum;
32
 use app\common\enum\store\ProductEnum;
@@ -53,6 +54,7 @@ use app\common\repositories\BaseRepository;
53
 use app\common\repositories\product\ProductSeckillRepository;
54
 use app\common\repositories\product\ProductSeckillRepository;
54
 use app\common\repositories\product\ShareRepository;
55
 use app\common\repositories\product\ShareRepository;
55
 use app\common\repositories\shared\SharedProsperityRecommendConfigRepository;
56
 use app\common\repositories\shared\SharedProsperityRecommendConfigRepository;
57
+use app\common\repositories\shared\SharedProsperityRewardRecordRepository;
56
 use app\common\repositories\shared\SharedProsperityUserRepository;
58
 use app\common\repositories\shared\SharedProsperityUserRepository;
57
 use app\common\repositories\store\coupon\StoreCouponProductRepository;
59
 use app\common\repositories\store\coupon\StoreCouponProductRepository;
58
 use app\common\repositories\store\coupon\StoreCouponRepository;
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
                 $sharedProsperityUserEntity->getUserId(),
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
             if (!empty($sharedProsperityUserEntity->getParentId())) {
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
                     /** @var SharedProsperityRecommendConfigRepository $sharedProsperityRecommendConfigRepository */
11668
                     /** @var SharedProsperityRecommendConfigRepository $sharedProsperityRecommendConfigRepository */
11629
                     $sharedProsperityRecommendConfigRepository = app()->make(SharedProsperityRecommendConfigRepository::class);
11669
                     $sharedProsperityRecommendConfigRepository = app()->make(SharedProsperityRecommendConfigRepository::class);
@@ -11635,7 +11675,7 @@ class StoreOrderRepository extends BaseRepository
11635
                         /** @var UserBillRepository $userBillRepository */
11675
                         /** @var UserBillRepository $userBillRepository */
11636
                         $userBillRepository = app()->make(UserBillRepository::class);
11676
                         $userBillRepository = app()->make(UserBillRepository::class);
11637
                         $userBillRepository->addUserBill(
11677
                         $userBillRepository->addUserBill(
11638
-                            $sharedProsperityUserEntityByParent->getUid(),
11678
+                            $sharedProsperityUserEntityByParent->getUserId(),
11639
                             UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
11679
                             UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
11640
                             UserBillEnum::PM['INCOME']['code'],
11680
                             UserBillEnum::PM['INCOME']['code'],
11641
                             $brokeragePriceBySpreadUid,
11681
                             $brokeragePriceBySpreadUid,
@@ -11645,7 +11685,7 @@ class StoreOrderRepository extends BaseRepository
11645
                             UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11685
                             UserBillEnum::ORDER_TYPE['SELF_OPERATED']['code'],
11646
                             UserBillEnum::TYPE_SHOP['Platform']['code'],
11686
                             UserBillEnum::TYPE_SHOP['Platform']['code'],
11647
                             $storeOrderEntity->getOrderId(),
11687
                             $storeOrderEntity->getOrderId(),
11648
-                            '推广共富区商品获得佣金'
11688
+                            '推广共富区会员消费获得佣金'
11649
                         );
11689
                         );
11650
                     }
11690
                     }
11651
                 }
11691
                 }
@@ -11909,9 +11949,11 @@ class StoreOrderRepository extends BaseRepository
11909
 
11949
 
11910
             // 筛选 未结算的 订单ID
11950
             // 筛选 未结算的 订单ID
11911
             $unsettledOrderIdList = [];
11951
             $unsettledOrderIdList = [];
11952
+            $unsettledOrderSnList = [];
11912
             foreach ($storeOrderEntityList as $storeOrderEntity) {
11953
             foreach ($storeOrderEntityList as $storeOrderEntity) {
11913
                 if ($storeOrderEntity->getIsSettlement() == StoreOrderEnum::IS_SETTLEMENT['NO']['code']) {
11954
                 if ($storeOrderEntity->getIsSettlement() == StoreOrderEnum::IS_SETTLEMENT['NO']['code']) {
11914
                     $unsettledOrderIdList[] = $storeOrderEntity->getOrderId();
11955
                     $unsettledOrderIdList[] = $storeOrderEntity->getOrderId();
11956
+                    $unsettledOrderSnList[] = $storeOrderEntity->getOrderSn();
11915
                 }
11957
                 }
11916
             }
11958
             }
11917
             if (empty($unsettledOrderIdList)) {
11959
             if (empty($unsettledOrderIdList)) {
@@ -11930,6 +11972,7 @@ class StoreOrderRepository extends BaseRepository
11930
                     $userBillRepository->executeByIdList($billIdList);
11972
                     $userBillRepository->executeByIdList($billIdList);
11931
                 }
11973
                 }
11932
 
11974
 
11975
+                /** 结算 复购金 */
11933
                 /** @var UserSignFugouRepository $userSignFugouRepository */
11976
                 /** @var UserSignFugouRepository $userSignFugouRepository */
11934
                 $userSignFugouRepository = app()->make(UserSignFugouRepository::class);
11977
                 $userSignFugouRepository = app()->make(UserSignFugouRepository::class);
11935
                 $userSignFugouEntityList = $userSignFugouRepository->getUserSignFugouEntityListByOrderIdListAndPending(UserSignFugouEnum::ORDER_TYPE['Platform']['code'], $unsettledOrderIdList);
11978
                 $userSignFugouEntityList = $userSignFugouRepository->getUserSignFugouEntityListByOrderIdListAndPending(UserSignFugouEnum::ORDER_TYPE['Platform']['code'], $unsettledOrderIdList);
@@ -11937,7 +11980,6 @@ class StoreOrderRepository extends BaseRepository
11937
                     $fugouIdList = array_map(function ($userSignFugouEntity) {
11980
                     $fugouIdList = array_map(function ($userSignFugouEntity) {
11938
                         return $userSignFugouEntity->getId();
11981
                         return $userSignFugouEntity->getId();
11939
                     }, $userSignFugouEntityList);
11982
                     }, $userSignFugouEntityList);
11940
-                    // 去结算 养老金 和佣金
11941
                     $userSignFugouRepository->executeByIdList($fugouIdList);
11983
                     $userSignFugouRepository->executeByIdList($fugouIdList);
11942
                 }
11984
                 }
11943
 
11985
 
@@ -11984,6 +12026,17 @@ class StoreOrderRepository extends BaseRepository
11984
                     $userSignHongbaoRepository->executeByIdList($userSignHongbaoIdList);
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
                 $this->dao->settlementOrderByOrderIdList($unsettledOrderIdList);
12041
                 $this->dao->settlementOrderByOrderIdList($unsettledOrderIdList);
11989
             } catch (DbException $e) {
12042
             } catch (DbException $e) {

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

@@ -9,6 +9,7 @@ class SharedProsperityRewardRecordEntity extends DataEntity
9
     public $id = null;  // ID
9
     public $id = null;  // ID
10
     public $userId = null;  // 用户ID
10
     public $userId = null;  // 用户ID
11
     public $type = null;  // 奖励类型
11
     public $type = null;  // 奖励类型
12
+    public $pm = null;  // 奖励类型
12
     public $number = null;  // 明细数字
13
     public $number = null;  // 明细数字
13
     public $balance = null;  // 剩余
14
     public $balance = null;  // 剩余
14
     public $status = null;  // 状态
15
     public $status = null;  // 状态
@@ -76,6 +77,24 @@ class SharedProsperityRewardRecordEntity extends DataEntity
76
     /**
77
     /**
77
      * @return mixed
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
     public function getNumber()
98
     public function getNumber()
80
     {
99
     {
81
         return $this->number;
100
         return $this->number;