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

线下扫码支付流程更改

xialei 1 год назад
Родитель
Сommit
e3de15574b

+ 103 - 0
app/command/PensionTasks.php

@@ -159,6 +159,109 @@ class PensionTasks extends Command
159
                     'order_sn'         => $offline['out_trade_no']
159
                     'order_sn'         => $offline['out_trade_no']
160
                 ];
160
                 ];
161
 //                $StoreOrderRepository->area_manage_details($order_data, 0, 2);
161
 //                $StoreOrderRepository->area_manage_details($order_data, 0, 2);
162
+
163
+
164
+
165
+                // 结算红包
166
+                $user_sign_hongbao_list = Db::name('user_sign_hongbao')
167
+                    ->where('status', -1)
168
+                    ->where('order_id', $offline['id'])
169
+                    ->whereIn('type', [1, 2])
170
+                    ->select()
171
+                    ->toArray();
172
+                foreach ($user_sign_hongbao_list as $user_sign_hongbao) {
173
+                    if($user_sign_hongbao['uid']){
174
+                        // 修改红包
175
+                        Db::name('user')
176
+                            ->where('uid', $user_sign_hongbao['uid'])
177
+                            ->inc('hongbao', (float)$user_sign_hongbao['number'])
178
+                            ->update();
179
+                        Db::name('user_sign_hongbao')
180
+                            ->where('status', -1)
181
+                            ->where('id', $user_sign_hongbao['id'])
182
+                            ->update([
183
+                                'status'          => 1,
184
+                                'settlement_time' => date('Y-m-d H:i:s')
185
+                            ]);
186
+                    }
187
+                }
188
+
189
+
190
+                // 结算积分
191
+                $user_sign_score_list = Db::name('user_sign_score')
192
+                    ->where('status', -1)
193
+                    ->where('order_id', $offline['id'])
194
+                    ->whereIn('type', [1, 2])
195
+                    ->select()
196
+                    ->toArray();
197
+                foreach ($user_sign_score_list as $user_sign_score) {
198
+                    if($user_sign_score['uid']){
199
+                        // 修改积分
200
+                        Db::name('user')
201
+                        ->where('uid', $user_sign_score['uid'])
202
+                        ->inc('score', (float)$user_sign_score['reward_socre'])
203
+                        ->update();
204
+                        Db::name('user_sign_score')
205
+                            ->where('status', -1)
206
+                            ->where('id', $user_sign_score['id'])
207
+                            ->update([
208
+                                'status'          => 1,
209
+                                'settlement_time' => date('Y-m-d H:i:s')
210
+                            ]);
211
+                    }
212
+                }
213
+
214
+
215
+                // 结算贡献值
216
+                $user_sign_gongxian_list = Db::name('user_sign_gongxian')
217
+                    ->where('status', -1)
218
+                    ->where('order_id', $offline['id'])
219
+                    ->whereIn('type', [1, 2])
220
+                    ->select()
221
+                    ->toArray();
222
+                foreach ($user_sign_gongxian_list as $user_sign_gongxian) {
223
+                    if($user_sign_gongxian['uid']){
224
+                        // 修改贡献值
225
+                        Db::name('user')
226
+                        ->where('uid', $user_sign_gongxian['uid'])
227
+                        ->inc('contribute', (float)$user_sign_gongxian['number'])
228
+                        ->update();
229
+                        Db::name('user_sign_gongxian')
230
+                        ->where('status', -1)
231
+                        ->where('id', $user_sign_gongxian['id'])
232
+                        ->update([
233
+                            'status'          => 1,
234
+                            'settlement_time' => date('Y-m-d H:i:s')
235
+                        ]);
236
+                    }
237
+                }
238
+
239
+                // 结算佣金
240
+                $user_bill_list = Db::name('user_bill')
241
+                ->where('status', 0)
242
+                ->where('commission_type','<>', 5)
243
+                ->where([ 'link_id' => $offline['id'], 'order_sn' => $offline['order_sn']])
244
+                ->select()
245
+                ->toArray();
246
+                foreach ($user_bill_list as $user_bill) {
247
+                    if($user_bill['uid']){
248
+                        if ($user_bill['commission_type'] != 5) {
249
+                            if (in_array($user_bill['commission_type'], [7,12,19])) {
250
+                                Db::name("merchant")
251
+                                    ->where("mer_id", $user_bill['mer_id'])
252
+                                    ->inc('brokerage_price', (float)$user_bill['number'])
253
+                                    ->update();
254
+                            } else {
255
+                                Db::name('user')
256
+                                    ->where('uid', $user_bill['uid'])
257
+                                    ->inc('brokerage_price', (float)$user_bill['number'])
258
+                                    ->update();
259
+                            }
260
+                        }
261
+                    }
262
+                }
263
+
264
+
162
             });
265
             });
163
         }
266
         }
164
     }
267
     }

+ 30 - 9
app/common/repositories/merchant/order/OrderMerchantRepository.php

@@ -1340,7 +1340,7 @@ class OrderMerchantRepository extends BaseRepository
1340
                 "number"  =>    $hongbao,
1340
                 "number"  =>    $hongbao,
1341
                 "addtime"       =>time(),
1341
                 "addtime"       =>time(),
1342
                 "status"        =>-1,
1342
                 "status"        =>-1,
1343
-                "order_type"    =>$order_id,
1343
+                "order_type"    =>1,
1344
                 "order_id"      =>$order_id,
1344
                 "order_id"      =>$order_id,
1345
                 "mark"          =>"消费获得赠送红包",
1345
                 "mark"          =>"消费获得赠送红包",
1346
                 "desc"          =>'',
1346
                 "desc"          =>'',
@@ -1352,13 +1352,27 @@ class OrderMerchantRepository extends BaseRepository
1352
 
1352
 
1353
         ///用户可以拿到PV等值的积分和贡献值
1353
         ///用户可以拿到PV等值的积分和贡献值
1354
         if ($pv >= 0.01) {
1354
         if ($pv >= 0.01) {
1355
-            $userRepository->sign_add($order["uid"], $pv, 1, '消费获得赠送积分', '', '', $order['order_id'], 1, 'order_merchant');
1355
+            //积分
1356
+            $ins_data['uid'] = $order["uid"];
1357
+            $ins_data['continuity_day'] = 0;
1358
+            $ins_data['reward_socre'] = $pv;
1359
+            $ins_data['signin_time'] = 0;
1360
+            $ins_data['addtime'] = time();
1361
+            $ins_data['status'] = -1;
1362
+            $ins_data['mark'] = "消费获得赠送积分";
1363
+            $ins_data['source_type'] = 3;
1364
+            $ins_data['settlement_time'] = 0;// 结算时间 真正到了结算时间会结算
1365
+            $ins_data['order_id'] = $order_id;
1366
+            $ins_data['pm'] = 1;
1367
+            $ins_data['order_type'] = $order_id;
1368
+            Db::name('user_sign_score')->insertGetId($ins_data);
1369
+            //贡献值
1356
             $gongxian_data = [
1370
             $gongxian_data = [
1357
                 "uid"           =>$order["uid"],
1371
                 "uid"           =>$order["uid"],
1358
                 "number"  =>    $pv,
1372
                 "number"  =>    $pv,
1359
                 "addtime"       =>time(),
1373
                 "addtime"       =>time(),
1360
                 "status"        =>-1,
1374
                 "status"        =>-1,
1361
-                "order_type"    =>$order_id,
1375
+                "order_type"    =>1,
1362
                 "order_id"      =>$order_id,
1376
                 "order_id"      =>$order_id,
1363
                 "mark"          =>"消费获得赠送贡献值",
1377
                 "mark"          =>"消费获得赠送贡献值",
1364
                 "desc"          =>'',
1378
                 "desc"          =>'',
@@ -1373,11 +1387,11 @@ class OrderMerchantRepository extends BaseRepository
1373
         //用户推荐人可拿的养老金
1387
         //用户推荐人可拿的养老金
1374
         $user_yanglaojin = bcmul($pv, $yonghu_bili_tuijian, 2);
1388
         $user_yanglaojin = bcmul($pv, $yonghu_bili_tuijian, 2);
1375
         if ($user_yanglaojin >= 0.01) {
1389
         if ($user_yanglaojin >= 0.01) {
1376
-            $mark = "消费获得养老金" . $user_yanglaojin;
1390
+            $mark = "推荐线下消费获得养老金" . $user_yanglaojin;
1377
             $title = "养老金";
1391
             $title = "养老金";
1378
             $source = 1;
1392
             $source = 1;
1379
             $commission_type = 5;
1393
             $commission_type = 5;
1380
-            $this->add_bill($title, $user_yanglaojin, $order["uid"], $mark, $commission_type, $order_sn, $order_id, $order["mer_id"], $source, 1);
1394
+            $this->add_bill($title, $user_yanglaojin, $top_data["spread_uid"], $mark, $commission_type, $order_sn, $order_id, $order["mer_id"], $source, 1);
1381
         } else {
1395
         } else {
1382
             Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,养老金低于0.01无法入库 特此记录!']);
1396
             Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,养老金低于0.01无法入库 特此记录!']);
1383
         }
1397
         }
@@ -1385,7 +1399,7 @@ class OrderMerchantRepository extends BaseRepository
1385
         //用户推荐人佣金
1399
         //用户推荐人佣金
1386
         $tuijian_yongjin = bcmul($pv, $yonghu_tuijian, 2);
1400
         $tuijian_yongjin = bcmul($pv, $yonghu_tuijian, 2);
1387
         if ($tuijian_yongjin >= 0.01) {
1401
         if ($tuijian_yongjin >= 0.01) {
1388
-            $mark = "用户在大仓消费获得" . $tuijian_yongjin . '佣金';
1402
+            $mark = "推荐线下消费获得" . $tuijian_yongjin . '佣金';
1389
             $title = "佣金";
1403
             $title = "佣金";
1390
             $source = 1;
1404
             $source = 1;
1391
             $commission_type = 3;
1405
             $commission_type = 3;
@@ -1395,8 +1409,11 @@ class OrderMerchantRepository extends BaseRepository
1395
         }
1409
         }
1396
 
1410
 
1397
 
1411
 
1398
-        //商户得到的(京豆和贡献值奖励的倍,后台设置)
1399
         $mer_data = Db::name('merchant')->where('mer_id', $order['mer_id'])->field('uid,mer_id')->find();
1412
         $mer_data = Db::name('merchant')->where('mer_id', $order['mer_id'])->field('uid,mer_id')->find();
1413
+        $userRepository = app()->make(UserRepository::class);
1414
+        $merchant_user = $userRepository->getOne(['uid' => $mer_data["uid"]]);
1415
+
1416
+        //商户得到的(京豆和贡献值奖励的倍,后台设置)
1400
         $gongxian = bcmul($pv, $mer_gonxian, 2);
1417
         $gongxian = bcmul($pv, $mer_gonxian, 2);
1401
         if ($gongxian >= 0.01) {
1418
         if ($gongxian >= 0.01) {
1402
             $gongxian_data = [
1419
             $gongxian_data = [
@@ -1405,7 +1422,7 @@ class OrderMerchantRepository extends BaseRepository
1405
                 "pv"            =>$pv,
1422
                 "pv"            =>$pv,
1406
                 "number"  =>    $gongxian,
1423
                 "number"  =>    $gongxian,
1407
                 "addtime"       =>time(),
1424
                 "addtime"       =>time(),
1408
-                "status"        =>-1,
1425
+                "status"        =>1,
1409
                 "order_type"    =>2,
1426
                 "order_type"    =>2,
1410
                 "order_id"      =>$order_id,
1427
                 "order_id"      =>$order_id,
1411
                 "mark"          =>"用户消费商家获得赠送贡献值",
1428
                 "mark"          =>"用户消费商家获得赠送贡献值",
@@ -1414,6 +1431,8 @@ class OrderMerchantRepository extends BaseRepository
1414
                 "type"          =>1
1431
                 "type"          =>1
1415
             ];
1432
             ];
1416
             Db::name("user_sign_gongxian")->insert($gongxian_data);//添加记录
1433
             Db::name("user_sign_gongxian")->insert($gongxian_data);//添加记录
1434
+            $merchant_user->contribute += $pv;
1435
+            $merchant_user->save();
1417
         } else {
1436
         } else {
1418
             Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,贡献值低于0.01无法入库 特此记录!']);
1437
             Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,贡献值低于0.01无法入库 特此记录!']);
1419
         }
1438
         }
@@ -1426,7 +1445,7 @@ class OrderMerchantRepository extends BaseRepository
1426
                 "mer_id"        =>$order["mer_id"],
1445
                 "mer_id"        =>$order["mer_id"],
1427
                 "number"  =>    $jd,
1446
                 "number"  =>    $jd,
1428
                 "addtime"       =>time(),
1447
                 "addtime"       =>time(),
1429
-                "status"        =>-1,
1448
+                "status"        =>1,
1430
                 "order_type"    =>2,
1449
                 "order_type"    =>2,
1431
                 "order_id"      =>$order_id,
1450
                 "order_id"      =>$order_id,
1432
                 "mark"          =>"用户消费商家获得赠送京豆",
1451
                 "mark"          =>"用户消费商家获得赠送京豆",
@@ -1434,6 +1453,8 @@ class OrderMerchantRepository extends BaseRepository
1434
                 "surplus"       =>$jd,
1453
                 "surplus"       =>$jd,
1435
                 "type"          =>1
1454
                 "type"          =>1
1436
             ];
1455
             ];
1456
+            $merchant_user->jingdou += $pv;
1457
+            $merchant_user->save();
1437
             Db::name("user_sign_jingdou")->insert($jd_data);//添加记录
1458
             Db::name("user_sign_jingdou")->insert($jd_data);//添加记录
1438
         } else {
1459
         } else {
1439
             Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,贡献值低于0.01无法入库 特此记录!']);
1460
             Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,贡献值低于0.01无法入库 特此记录!']);

+ 15 - 1
app/common/repositories/user/UserOfflineRechargeRepository.php

@@ -134,7 +134,7 @@ class UserOfflineRechargeRepository extends BaseRepository
134
                 $user = $userRepository->getOne(['uid' => $unionUser->uid]);
134
                 $user = $userRepository->getOne(['uid' => $unionUser->uid]);
135
                 if ($unionUser->pension <= 0) return true;
135
                 if ($unionUser->pension <= 0) return true;
136
 
136
 
137
-                //496商户线下支付不返回养老金
137
+                //496商户线下支付不返回养老金   
138
                 $orders = OrderMerchant::getDB()->where('pay_user_id', $unionUser->unionid)->where('status', 1) ->whereNotIn('mer_id', [496]) ->where('binds',0)->select();
138
                 $orders = OrderMerchant::getDB()->where('pay_user_id', $unionUser->unionid)->where('status', 1) ->whereNotIn('mer_id', [496]) ->where('binds',0)->select();
139
                 foreach ($orders as $order) {
139
                 foreach ($orders as $order) {
140
                     app()->make(UserBillRepository::class)->incBill($unionUser->uid, 'now_money', 'commission', [
140
                     app()->make(UserBillRepository::class)->incBill($unionUser->uid, 'now_money', 'commission', [
@@ -153,6 +153,20 @@ class UserOfflineRechargeRepository extends BaseRepository
153
                     $user->annuity += $order->pension;
153
                     $user->annuity += $order->pension;
154
                     $user->annuity_num += 1;
154
                     $user->annuity_num += 1;
155
                     $user->save();
155
                     $user->save();
156
+
157
+                    //同步用户部分------------------------------------
158
+                    //同步红包
159
+                    Db::name("user_sign_hongbao")->where('order_id', $order->id)->update(['uid' => $unionUser->uid]);
160
+
161
+                    //同步佣金
162
+                    Db::name("user_sign_hongbao")->where('order_id', $order->id)->update(['uid' => $unionUser->uid]);
163
+
164
+                    //同步积分
165
+                    Db::name("user_sign_score")->where('order_id', $order->id)->update(['uid' => $unionUser->uid]);
166
+                    
167
+                    //同步贡献值
168
+                    Db::name("user_sign_gongxian")->where('order_id', $order->id)->update(['uid' => $unionUser->uid]);
169
+
156
                     OrderMerchant::getDB()->where('pay_user_id', $unionUser->unionid)->update(['uid' => $unionUser->uid, 'binds' => 1]);
170
                     OrderMerchant::getDB()->where('pay_user_id', $unionUser->unionid)->update(['uid' => $unionUser->uid, 'binds' => 1]);
157
                 }
171
                 }
158
             } catch (\Throwable $e) {
172
             } catch (\Throwable $e) {