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

Merge branch 'master' of https://git.bjtdba.com/shop/php

chengzhiyixia 1 год назад
Родитель
Сommit
59513b7b9c

+ 103 - 0
app/command/PensionTasks.php

@@ -159,6 +159,109 @@ class PensionTasks extends Command
159 159
                     'order_sn'         => $offline['out_trade_no']
160 160
                 ];
161 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
     }

+ 33 - 12
app/common/repositories/merchant/order/OrderMerchantRepository.php

@@ -292,7 +292,7 @@ class OrderMerchantRepository extends BaseRepository
292 292
             //总可分佣金
293 293
             $avaiable = sprintf("%01.2f", $params['money'] * ($base_commission * 0.01));//四舍五入保留两位小数;
294 294
             //养老金
295
-            $pension = sprintf("%01.2f", $avaiable * 0.5);
295
+            $pension = sprintf("%01.2f", $avaiable * 0.3);
296 296
             if($params['mer_id']==496){
297 297
                 //把一壶茶电子商务公司的收款码养老金调成2%
298 298
                 $pension = sprintf("%01.2f", $params['money'] * 0.02);
@@ -1340,7 +1340,7 @@ class OrderMerchantRepository extends BaseRepository
1340 1340
                 "number"  =>    $hongbao,
1341 1341
                 "addtime"       =>time(),
1342 1342
                 "status"        =>-1,
1343
-                "order_type"    =>$order_id,
1343
+                "order_type"    =>1,
1344 1344
                 "order_id"      =>$order_id,
1345 1345
                 "mark"          =>"消费获得赠送红包",
1346 1346
                 "desc"          =>'',
@@ -1352,13 +1352,27 @@ class OrderMerchantRepository extends BaseRepository
1352 1352
 
1353 1353
         ///用户可以拿到PV等值的积分和贡献值
1354 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 1370
             $gongxian_data = [
1357 1371
                 "uid"           =>$order["uid"],
1358 1372
                 "number"  =>    $pv,
1359 1373
                 "addtime"       =>time(),
1360 1374
                 "status"        =>-1,
1361
-                "order_type"    =>$order_id,
1375
+                "order_type"    =>1,
1362 1376
                 "order_id"      =>$order_id,
1363 1377
                 "mark"          =>"消费获得赠送贡献值",
1364 1378
                 "desc"          =>'',
@@ -1373,11 +1387,11 @@ class OrderMerchantRepository extends BaseRepository
1373 1387
         //用户推荐人可拿的养老金
1374 1388
         $user_yanglaojin = bcmul($pv, $yonghu_bili_tuijian, 2);
1375 1389
         if ($user_yanglaojin >= 0.01) {
1376
-            $mark = "消费获得养老金" . $user_yanglaojin;
1390
+            $mark = "推荐线下消费获得养老金" . $user_yanglaojin;
1377 1391
             $title = "养老金";
1378 1392
             $source = 1;
1379 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 1395
         } else {
1382 1396
             Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,养老金低于0.01无法入库 特此记录!']);
1383 1397
         }
@@ -1385,7 +1399,7 @@ class OrderMerchantRepository extends BaseRepository
1385 1399
         //用户推荐人佣金
1386 1400
         $tuijian_yongjin = bcmul($pv, $yonghu_tuijian, 2);
1387 1401
         if ($tuijian_yongjin >= 0.01) {
1388
-            $mark = "用户在大仓消费获得" . $tuijian_yongjin . '佣金';
1402
+            $mark = "推荐线下消费获得" . $tuijian_yongjin . '佣金';
1389 1403
             $title = "佣金";
1390 1404
             $source = 1;
1391 1405
             $commission_type = 3;
@@ -1395,8 +1409,11 @@ class OrderMerchantRepository extends BaseRepository
1395 1409
         }
1396 1410
 
1397 1411
 
1398
-        //商户得到的(京豆和贡献值奖励的倍,后台设置)
1399 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 1417
         $gongxian = bcmul($pv, $mer_gonxian, 2);
1401 1418
         if ($gongxian >= 0.01) {
1402 1419
             $gongxian_data = [
@@ -1405,8 +1422,8 @@ class OrderMerchantRepository extends BaseRepository
1405 1422
                 "pv"            =>$pv,
1406 1423
                 "number"  =>    $gongxian,
1407 1424
                 "addtime"       =>time(),
1408
-                "status"        =>-1,
1409
-                "order_type"    =>$order_id,
1425
+                "status"        =>1,
1426
+                "order_type"    =>2,
1410 1427
                 "order_id"      =>$order_id,
1411 1428
                 "mark"          =>"用户消费商家获得赠送贡献值",
1412 1429
                 "desc"          =>'',
@@ -1414,6 +1431,8 @@ class OrderMerchantRepository extends BaseRepository
1414 1431
                 "type"          =>1
1415 1432
             ];
1416 1433
             Db::name("user_sign_gongxian")->insert($gongxian_data);//添加记录
1434
+            $merchant_user->contribute += $pv;
1435
+            $merchant_user->save();
1417 1436
         } else {
1418 1437
             Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,贡献值低于0.01无法入库 特此记录!']);
1419 1438
         }
@@ -1426,14 +1445,16 @@ class OrderMerchantRepository extends BaseRepository
1426 1445
                 "mer_id"        =>$order["mer_id"],
1427 1446
                 "number"  =>    $jd,
1428 1447
                 "addtime"       =>time(),
1429
-                "status"        =>-1,
1430
-                "order_type"    =>$order_id,
1448
+                "status"        =>1,
1449
+                "order_type"    =>2,
1431 1450
                 "order_id"      =>$order_id,
1432 1451
                 "mark"          =>"用户消费商家获得赠送京豆",
1433 1452
                 "desc"          =>'',
1434 1453
                 "surplus"       =>$jd,
1435 1454
                 "type"          =>1
1436 1455
             ];
1456
+            $merchant_user->jingdou += $pv;
1457
+            $merchant_user->save();
1437 1458
             Db::name("user_sign_jingdou")->insert($jd_data);//添加记录
1438 1459
         } else {
1439 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 134
                 $user = $userRepository->getOne(['uid' => $unionUser->uid]);
135 135
                 if ($unionUser->pension <= 0) return true;
136 136
 
137
-                //496商户线下支付不返回养老金
137
+                //496商户线下支付不返回养老金   
138 138
                 $orders = OrderMerchant::getDB()->where('pay_user_id', $unionUser->unionid)->where('status', 1) ->whereNotIn('mer_id', [496]) ->where('binds',0)->select();
139 139
                 foreach ($orders as $order) {
140 140
                     app()->make(UserBillRepository::class)->incBill($unionUser->uid, 'now_money', 'commission', [
@@ -153,6 +153,20 @@ class UserOfflineRechargeRepository extends BaseRepository
153 153
                     $user->annuity += $order->pension;
154 154
                     $user->annuity_num += 1;
155 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 170
                     OrderMerchant::getDB()->where('pay_user_id', $unionUser->unionid)->update(['uid' => $unionUser->uid, 'binds' => 1]);
157 171
                 }
158 172
             } catch (\Throwable $e) {

+ 2 - 2
app/common/repositories/user/UserThirdRepository.php

@@ -683,10 +683,10 @@ class UserThirdRepository extends BaseRepository
683 683
                 'uid'=>$user_id,
684 684
                 'number'=>$inc_score,//数量
685 685
                 'status'=>-1,//复购金状态1-有效 0-失效 -1待确认
686
-                'mark'=>"购买{$make}商品赠送积分",//备注
686
+                'mark'=>"购买{$make}商品赠送复购金",//备注
687 687
                 'order_id'=>$order_sn,//订单id
688 688
                 'surplus'=>0,//剩余
689
-                'order_type'=>11,//关联订单ID
689
+                'order_type'=>$type_shop,//关联订单ID
690 690
                 'type'=>1,//复购金类型 :1赠送,2消耗
691 691
                 'settlement_time'=>date('Y-m-d H:i:s'),//添加时间,
692 692
                 'addtime'=>time(),

+ 21 - 10
app/controller/api/Notify.php

@@ -88,6 +88,7 @@ class Notify
88 88
                                     Db::name('user_sign_score')->where('order_id', $order_data['order_no'])->update(['status'=> 0]);
89 89
                                     Db::name('user_sign_gongxian')->where('order_id', $order_data['order_no'])->update(['status'=> 0]);
90 90
                                     Db::name('user_sign_fugou')->where('order_id', $order_data['order_no'])->update(['status'=> 0]);
91
+                                    Db::name('user_sign_hongbao')->where('order_id', $order_data['order_no'])->update(['status'=> 0]);
91 92
                                 }
92 93
                             }catch (\Exception $e) {
93 94
                                 Db::name('log')->insert(['data'=>'话费充值支付回调推送订单错误:'.$e->getFile().':'.$e->getLine().'【'.$e->getMessage().'】']);
@@ -1531,18 +1532,28 @@ class Notify
1531 1532
 
1532 1533
     //订单数据补充
1533 1534
     public function buchong(){
1534
-        $list = Db::name('store_order')->where('fzone_paytype', 'not null')->select();
1535
+        $list = Db::name('user_sign_fugou')->where('order_id', 2147483647)->where('mark', '购买话费商品赠送复购金')->where('status', -1)->select();
1535 1536
         foreach($list as $k => $v){
1536
-            $fzone_paytype = json_decode($v['fzone_paytype'], true);
1537
-            if(isset($fzone_paytype['jingdou'])) $update_data['fzone_pay_jingdou'] = $fzone_paytype['jingdou'];
1538
-            if(isset($fzone_paytype['vr'])) $update_data['fzone_pay_vr'] = $fzone_paytype['vr'];
1539
-            if(isset($fzone_paytype['jifen'])) $update_data['fzone_pay_jifen'] = $fzone_paytype['jifen'];
1540
-            if(isset($fzone_paytype['price'])) $update_data['fzone_pay_price'] = $fzone_paytype['price'];
1541
-            if(isset($fzone_paytype['other'])) $update_data['fzone_pay_other'] = $fzone_paytype['other'];
1542
-            if(isset($fzone_paytype['type'])) $update_data['fzone_pay_type'] = $fzone_paytype['type'];
1543
-            if(isset($fzone_paytype['note'])) $update_data['fzone_pay_note'] = $fzone_paytype['note'];
1544
-            Db::name('store_order')->where("order_id", $v['order_id'])->update($update_data);
1537
+            $score = Db::name('user_sign_score')->where('uid', $v['uid'])->where('addtime', $v['addtime'])->where('mark', '购买话费商品赠送积分')->find();
1538
+            if($score){
1539
+                $update_data['status'] = $score['status'];
1540
+                $update_data['order_id'] = $score['order_id'];
1541
+                Db::name('user_sign_fugou')->where("id", $v['id'])->update($update_data);
1542
+            }
1545 1543
         }
1544
+
1545
+
1546
+        // foreach($list as $k => $v){
1547
+        //     $fzone_paytype = json_decode($v['fzone_paytype'], true);
1548
+        //     if(isset($fzone_paytype['jingdou'])) $update_data['fzone_pay_jingdou'] = $fzone_paytype['jingdou'];
1549
+        //     if(isset($fzone_paytype['vr'])) $update_data['fzone_pay_vr'] = $fzone_paytype['vr'];
1550
+        //     if(isset($fzone_paytype['jifen'])) $update_data['fzone_pay_jifen'] = $fzone_paytype['jifen'];
1551
+        //     if(isset($fzone_paytype['price'])) $update_data['fzone_pay_price'] = $fzone_paytype['price'];
1552
+        //     if(isset($fzone_paytype['other'])) $update_data['fzone_pay_other'] = $fzone_paytype['other'];
1553
+        //     if(isset($fzone_paytype['type'])) $update_data['fzone_pay_type'] = $fzone_paytype['type'];
1554
+        //     if(isset($fzone_paytype['note'])) $update_data['fzone_pay_note'] = $fzone_paytype['note'];
1555
+        //     Db::name('store_order')->where("order_id", $v['order_id'])->update($update_data);
1556
+        // }
1546 1557
         return app('json')->success(['result' => 'ok']);
1547 1558
     }
1548 1559
 

+ 1 - 0
app/controller/api/store/service/Huafei.php

@@ -99,6 +99,7 @@ class Huafei extends BaseController
99 99
 					Db::name('user_sign_score')->where('order_id', $huafeiInfo['order_no'])->update(['status'=> 0]);
100 100
 					Db::name('user_sign_gongxian')->where('order_id', $huafeiInfo['order_no'])->update(['status'=> 0]);
101 101
 					Db::name('user_sign_fugou')->where('order_id', $huafeiInfo['order_no'])->update(['status'=> 0]);
102
+					Db::name('user_sign_hongbao')->where('order_id', $huafeiInfo['order_no'])->update(['status'=> 0]);
102 103
 				}
103 104
 	
104 105
 				echo 'success';

+ 2 - 5
app/controller/api/user/User.php

@@ -346,16 +346,13 @@ class User extends BaseController
346 346
         $where['uid'] = $uid;
347 347
 
348 348
         if ($pm==0){
349
-
350
-            $data = DB::name('user_sign_fugou')->where($where)->where('type', 1)->field('id,mark,number,type,addtime,order_id')->page($page, $limit)->order("id desc")->select();
349
+            $data = DB::name('user_sign_fugou')->where($where)->where('type', 1)->where('status', 1)->field('id,mark,number,type,addtime,order_id')->page($page, $limit)->order("id desc")->select();
351 350
         }
352 351
         if($pm==1){
353 352
             $data = DB::name('user_sign_fugou')->where($where)->where('type', 2)->field('id,mark,number,type,addtime,order_id')->page($page, $limit)->order("id desc")->select();
354
-
355 353
         }
356 354
         if($pm==2){
357
-            $data = DB::name('user_sign_fugou')->where($where)->where('status', -1)->field('id,mark,number,pm,addtime,order_id')->page($page, $limit)->order("id desc")->select();
358
-
355
+            $data = DB::name('user_sign_fugou')->where($where)->where('status', -1)->field('id,mark,number,type,addtime,order_id')->page($page, $limit)->order("id desc")->select();
359 356
         }
360 357
         log::info("=======date==={$data}");
361 358
         return app("json")->success($data);