|
|
@@ -628,7 +628,10 @@ class OrderMerchantRepository extends BaseRepository
|
|
628
|
628
|
|
|
629
|
629
|
$user = $userRepository->getOne($where);
|
|
630
|
630
|
$order = (object)$order;
|
|
631
|
|
- $this->feidacang_fenyong($user, $order_data, 0);
|
|
|
631
|
+ if($user){
|
|
|
632
|
+ $this->feidacang_fenyong($user, $order_data, 0);
|
|
|
633
|
+ }
|
|
|
634
|
+ $this->feidacang_fenyong_mer($user, $order_data, 0);
|
|
632
|
635
|
$this->doBind($user, $order, $flag);//锁客
|
|
633
|
636
|
Db::name("log")->insert(['data' => '绑定用户完成']);//日志记录
|
|
634
|
637
|
// $this->doBroadcast($actuallyPaid, $mer_id);
|
|
|
@@ -979,7 +982,6 @@ class OrderMerchantRepository extends BaseRepository
|
|
979
|
982
|
break;
|
|
980
|
983
|
default:
|
|
981
|
984
|
return true;
|
|
982
|
|
-
|
|
983
|
985
|
}
|
|
984
|
986
|
$userOfflineRechargeRepository = app()->make(UserOfflineRechargeRepository::class);
|
|
985
|
987
|
if (!$user['mer_id']) {
|
|
|
@@ -1306,18 +1308,14 @@ class OrderMerchantRepository extends BaseRepository
|
|
1306
|
1308
|
$yonghu_bili_tuijian = '0.05';
|
|
1307
|
1309
|
//用户推荐人,消费者的推荐人佣金
|
|
1308
|
1310
|
$yonghu_tuijian = $this->getUserGroupRate($user['user_group']);
|
|
1309
|
|
-
|
|
1310
|
|
- $getMerchantContribution = $this->getMerchantContribution($mer_fanyongbili);
|
|
1311
|
|
- //商家贡献值比例
|
|
1312
|
|
- $mer_gonxian = $getMerchantContribution['gonxian'];
|
|
1313
|
|
- // 商家京豆比例
|
|
1314
|
|
- $mer_jd = $getMerchantContribution['jd'];
|
|
1315
|
|
- //跨店分佣
|
|
1316
|
|
- $kd = 0.1;
|
|
|
1311
|
+ //用户推荐人,消费者的推荐人复购金
|
|
|
1312
|
+ $yonghu_fugou = '0.1';
|
|
1317
|
1313
|
/**
|
|
1318
|
1314
|
* 各自的比例结束
|
|
1319
|
1315
|
*/
|
|
1320
|
1316
|
|
|
|
1317
|
+ // 用户---------------------------------------------------------------------------------------------------------------
|
|
|
1318
|
+
|
|
1321
|
1319
|
//用户可拿的养老金
|
|
1322
|
1320
|
$user_yanglaojin = bcmul($divisible_commission, $yonghu_bili, 2);
|
|
1323
|
1321
|
if ($user_yanglaojin >= 0.01) {
|
|
|
@@ -1331,23 +1329,25 @@ class OrderMerchantRepository extends BaseRepository
|
|
1331
|
1329
|
}
|
|
1332
|
1330
|
|
|
1333
|
1331
|
// 用户可以拿到的红包 红包:如果是1.0的老用户 pv的45%放到红包里面。14*45%=6.3元。直至金额满足1.0平台当前用户身份为止就不在反红包了
|
|
1334
|
|
- $old_vip_limit = Db::name('user_sign_hongbao')->where('uid',$order["uid"])->sum('number');
|
|
1335
|
|
- if($user["is_old"]==1 && $user["old_vip_limit"] < $old_vip_limit){
|
|
|
1332
|
+ $old_vip_limit = Db::name('user_sign_hongbao')->where('uid',$order["uid"])->sum('number') ?? 0;
|
|
|
1333
|
+ if($user["is_old"]==1){
|
|
1336
|
1334
|
//添加红包
|
|
1337
|
1335
|
$hongbao=bcmul($pv, $yonghu_hongbao, 2);
|
|
1338
|
1336
|
$hongbao_data = [
|
|
1339
|
1337
|
"uid" =>$order["uid"],
|
|
1340
|
1338
|
"number" => $hongbao,
|
|
1341
|
1339
|
"addtime" =>time(),
|
|
1342
|
|
- "status" =>-1,
|
|
|
1340
|
+ "status" =>1,
|
|
1343
|
1341
|
"order_type" =>1,
|
|
1344
|
1342
|
"order_id" =>$order_id,
|
|
1345
|
|
- "mark" =>"消费获得赠送红包",
|
|
|
1343
|
+ "mark" =>"扫码消费获得赠送红包",
|
|
1346
|
1344
|
"desc" =>'',
|
|
1347
|
1345
|
"surplus" =>$hongbao,
|
|
1348
|
|
- "type" =>1
|
|
|
1346
|
+ "type" =>1,
|
|
|
1347
|
+ 'settlement_time' => date('Y-m-d H:i:s')
|
|
1349
|
1348
|
];
|
|
1350
|
1349
|
Db::name("user_sign_hongbao")->insert($hongbao_data);//添加记录
|
|
|
1350
|
+ Db::name('user')->where('uid', $order["uid"])->inc('hongbao', (float)$hongbao)->update();
|
|
1351
|
1351
|
}
|
|
1352
|
1352
|
|
|
1353
|
1353
|
///用户可以拿到PV等值的积分和贡献值
|
|
|
@@ -1358,36 +1358,42 @@ class OrderMerchantRepository extends BaseRepository
|
|
1358
|
1358
|
$ins_data['reward_socre'] = $pv;
|
|
1359
|
1359
|
$ins_data['signin_time'] = 0;
|
|
1360
|
1360
|
$ins_data['addtime'] = time();
|
|
1361
|
|
- $ins_data['status'] = -1;
|
|
1362
|
|
- $ins_data['mark'] = "消费获得赠送积分";
|
|
|
1361
|
+ $ins_data['status'] = 1;
|
|
|
1362
|
+ $ins_data['mark'] = "扫码消费获得赠送积分";
|
|
1363
|
1363
|
$ins_data['source_type'] = 3;
|
|
1364
|
1364
|
$ins_data['settlement_time'] = 0;// 结算时间 真正到了结算时间会结算
|
|
1365
|
1365
|
$ins_data['order_id'] = $order_id;
|
|
1366
|
1366
|
$ins_data['pm'] = 1;
|
|
1367
|
1367
|
$ins_data['order_type'] = $order_id;
|
|
|
1368
|
+ $ins_data['settlement_time'] = date('Y-m-d H:i:s');
|
|
1368
|
1369
|
Db::name('user_sign_score')->insertGetId($ins_data);
|
|
|
1370
|
+ Db::name('user')->where('uid', $order["uid"])->inc('score', (float)$pv)->update();
|
|
1369
|
1371
|
//贡献值
|
|
1370
|
1372
|
$gongxian_data = [
|
|
1371
|
1373
|
"uid" =>$order["uid"],
|
|
1372
|
1374
|
"number" => $pv,
|
|
1373
|
1375
|
"addtime" =>time(),
|
|
1374
|
|
- "status" =>-1,
|
|
|
1376
|
+ "status" =>1,
|
|
1375
|
1377
|
"order_type" =>1,
|
|
1376
|
1378
|
"order_id" =>$order_id,
|
|
1377
|
|
- "mark" =>"消费获得赠送贡献值",
|
|
|
1379
|
+ "mark" =>"扫码消费获得赠送贡献值",
|
|
1378
|
1380
|
"desc" =>'',
|
|
1379
|
1381
|
"surplus" =>$pv,
|
|
1380
|
|
- "type" =>1
|
|
|
1382
|
+ "type" =>1,
|
|
|
1383
|
+ 'settlement_time' => date('Y-m-d H:i:s')
|
|
1381
|
1384
|
];
|
|
1382
|
1385
|
Db::name("user_sign_gongxian")->insert($gongxian_data);//添加记录
|
|
|
1386
|
+ Db::name('user')->where('uid', $order["uid"])->inc('contribute', (float)$pv)->update();
|
|
1383
|
1387
|
} else {
|
|
1384
|
1388
|
Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,积分和贡献值低于0.01无法入库 特此记录!']);
|
|
1385
|
1389
|
}
|
|
1386
|
1390
|
|
|
|
1391
|
+ // 用户推荐人---------------------------------------------------------------------------------------------------------------
|
|
|
1392
|
+
|
|
1387
|
1393
|
//用户推荐人可拿的养老金
|
|
1388
|
1394
|
$user_yanglaojin = bcmul($pv, $yonghu_bili_tuijian, 2);
|
|
1389
|
1395
|
if ($user_yanglaojin >= 0.01) {
|
|
1390
|
|
- $mark = "推荐线下消费获得养老金" . $user_yanglaojin;
|
|
|
1396
|
+ $mark = "推荐人扫码消费获得养老金" . $user_yanglaojin;
|
|
1391
|
1397
|
$title = "养老金";
|
|
1392
|
1398
|
$source = 1;
|
|
1393
|
1399
|
$commission_type = 5;
|
|
|
@@ -1398,16 +1404,83 @@ class OrderMerchantRepository extends BaseRepository
|
|
1398
|
1404
|
|
|
1399
|
1405
|
//用户推荐人佣金
|
|
1400
|
1406
|
$tuijian_yongjin = bcmul($pv, $yonghu_tuijian, 2);
|
|
1401
|
|
- if ($tuijian_yongjin >= 0.01) {
|
|
1402
|
|
- $mark = "推荐线下消费获得" . $tuijian_yongjin . '佣金';
|
|
|
1407
|
+ $tuijian_yongjin_90 = bcmul($tuijian_yongjin, '0.9', 2);
|
|
|
1408
|
+ if ($tuijian_yongjin_90 >= 0.01) {
|
|
|
1409
|
+ $mark = "推荐人扫码消费获得" . $tuijian_yongjin_90 . '佣金';
|
|
1403
|
1410
|
$title = "佣金";
|
|
1404
|
1411
|
$source = 1;
|
|
1405
|
1412
|
$commission_type = 3;
|
|
1406
|
|
- $this->add_bill($title, $tuijian_yongjin, $top_data["spread_uid"], $mark, $commission_type, $order_sn, $order_id, $order["mer_id"], $source, 1);
|
|
|
1413
|
+ $this->add_bill($title, $tuijian_yongjin_90, $top_data["spread_uid"], $mark, $commission_type, $order_sn, $order_id, $order["mer_id"], $source, 1);
|
|
1407
|
1414
|
} else {
|
|
1408
|
1415
|
Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,佣金低于0.01无法入库 特此记录!']);
|
|
1409
|
1416
|
}
|
|
1410
|
1417
|
|
|
|
1418
|
+ //用户推荐人获得复购金佣金百分之10
|
|
|
1419
|
+ $tuijian_fugou = bcmul($tuijian_yongjin, $yonghu_fugou, 2);
|
|
|
1420
|
+ if ($tuijian_fugou >= 0.01) {
|
|
|
1421
|
+ $bill = [
|
|
|
1422
|
+ 'uid'=>$top_data["spread_uid"],
|
|
|
1423
|
+ 'number'=>$tuijian_fugou,//数量
|
|
|
1424
|
+ 'status'=>-1,//复购金状态1-有效 0-失效 -1待确认
|
|
|
1425
|
+ 'mark'=>"推荐人扫码消费赠送" . $tuijian_fugou . '复购金',//备注
|
|
|
1426
|
+ 'order_id'=>$order_id,//订单id
|
|
|
1427
|
+ 'surplus'=>0,//剩余
|
|
|
1428
|
+ 'order_type'=>0,//关联订单ID
|
|
|
1429
|
+ 'type'=>1,//复购金类型 :1赠送,2消耗
|
|
|
1430
|
+ 'settlement_time'=>date('Y-m-d H:i:s'),//添加时间,
|
|
|
1431
|
+ 'addtime'=>time(),
|
|
|
1432
|
+ ];
|
|
|
1433
|
+ Db::name('user_sign_fugou')->insert($bill);
|
|
|
1434
|
+ } else {
|
|
|
1435
|
+ Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的复购金比例较低,复购金低于0.01无法入库 特此记录!']);
|
|
|
1436
|
+ }
|
|
|
1437
|
+ }
|
|
|
1438
|
+
|
|
|
1439
|
+
|
|
|
1440
|
+
|
|
|
1441
|
+
|
|
|
1442
|
+
|
|
|
1443
|
+
|
|
|
1444
|
+
|
|
|
1445
|
+ //商户二维码收款商家返佣
|
|
|
1446
|
+ public function feidacang_fenyong_mer($user, $order, $pay_status)
|
|
|
1447
|
+ {
|
|
|
1448
|
+ $userRepository = app()->make(UserRepository::class);
|
|
|
1449
|
+ if ($pay_status == 1) {
|
|
|
1450
|
+ return '';
|
|
|
1451
|
+ }
|
|
|
1452
|
+ $top_data = Db::name('user')->where('uid', $order['uid'])->field('spread_uid,mer_id')->find();
|
|
|
1453
|
+ $mer_fanyongbili = merchantConfig($order['mer_id'], 'base_commission');
|
|
|
1454
|
+ //如果商户返佣比例设置的是0怎查系统设设置的分佣比例
|
|
|
1455
|
+ if ($mer_fanyongbili == 0) {
|
|
|
1456
|
+ $mer_fanyongbili = merchantConfig(0, 'extension_one_rate');
|
|
|
1457
|
+ }
|
|
|
1458
|
+ //如果系统设置的是0就不执行!
|
|
|
1459
|
+ if ($mer_fanyongbili == 0) {
|
|
|
1460
|
+ Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . ' 订单因商家、平台没有设置返佣比例无任何奖励特此记录!']);
|
|
|
1461
|
+ return '';
|
|
|
1462
|
+ }
|
|
|
1463
|
+ $order_sn = $order['order_sn'] ?? '';
|
|
|
1464
|
+ $order_id = $order['order_id'] ?? '';
|
|
|
1465
|
+ //可分总佣金
|
|
|
1466
|
+ $divisible_commission = bcmul($order['pay_price'], bcdiv($mer_fanyongbili, '100', 2), 2);//让利部分
|
|
|
1467
|
+ $pv = bcmul($divisible_commission, '0.7', 2);//商家让利部分30%给消费者做养老金,70%做业绩PV
|
|
|
1468
|
+
|
|
|
1469
|
+ /**
|
|
|
1470
|
+ * 各自的比例开始
|
|
|
1471
|
+ */
|
|
|
1472
|
+ $getMerchantContribution = $this->getMerchantContribution($mer_fanyongbili);
|
|
|
1473
|
+ //商家贡献值比例
|
|
|
1474
|
+ $mer_gonxian = $getMerchantContribution['gonxian'];
|
|
|
1475
|
+ // 商家京豆比例
|
|
|
1476
|
+ $mer_jd = $getMerchantContribution['jd'];
|
|
|
1477
|
+ //跨店分佣
|
|
|
1478
|
+ $kd = 0.1;
|
|
|
1479
|
+ /**
|
|
|
1480
|
+ * 各自的比例结束
|
|
|
1481
|
+ */
|
|
|
1482
|
+
|
|
|
1483
|
+ // 商户---------------------------------------------------------------------------------------------------------------
|
|
1411
|
1484
|
|
|
1412
|
1485
|
$mer_data = Db::name('merchant')->where('mer_id', $order['mer_id'])->field('uid,mer_id')->find();
|
|
1413
|
1486
|
$userRepository = app()->make(UserRepository::class);
|
|
|
@@ -1431,7 +1504,7 @@ class OrderMerchantRepository extends BaseRepository
|
|
1431
|
1504
|
"type" =>1
|
|
1432
|
1505
|
];
|
|
1433
|
1506
|
Db::name("user_sign_gongxian")->insert($gongxian_data);//添加记录
|
|
1434
|
|
- $merchant_user->contribute += $pv;
|
|
|
1507
|
+ $merchant_user->contribute = $merchant_user->contribute + $pv;
|
|
1435
|
1508
|
$merchant_user->save();
|
|
1436
|
1509
|
} else {
|
|
1437
|
1510
|
Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,贡献值低于0.01无法入库 特此记录!']);
|
|
|
@@ -1453,14 +1526,14 @@ class OrderMerchantRepository extends BaseRepository
|
|
1453
|
1526
|
"surplus" =>$jd,
|
|
1454
|
1527
|
"type" =>1
|
|
1455
|
1528
|
];
|
|
1456
|
|
- $merchant_user->jingdou += $pv;
|
|
|
1529
|
+ $merchant_user->jingdou = $merchant_user->jingdou + $pv;
|
|
1457
|
1530
|
$merchant_user->save();
|
|
1458
|
1531
|
Db::name("user_sign_jingdou")->insert($jd_data);//添加记录
|
|
1459
|
1532
|
} else {
|
|
1460
|
1533
|
Db::name('log')->insert(['data' => '订单号:' . $order['order_sn'] . '付款额度较低或 商家、平台设置的返佣比例较低,贡献值低于0.01无法入库 特此记录!']);
|
|
1461
|
1534
|
}
|
|
1462
|
1535
|
|
|
1463
|
|
- Db::name('log')->insert(['data' => 'PV:' . $pv .' mer_jd:'. $mer_jd.' mer_gonxian:'.$mer_gonxian]);
|
|
|
1536
|
+ Db::name('log')->insert(['data' => 'PV:' . $pv .' mer_jd:'. $mer_jd.' mer_gonxian:'.$mer_gonxian.' jingdou:'.$merchant_user->jingdou.' contribute:'.$merchant_user->contribute]);
|
|
1464
|
1537
|
|
|
1465
|
1538
|
//跨店
|
|
1466
|
1539
|
$kd_yongjin = bcmul($divisible_commission, $kd, 2);
|
|
|
@@ -1479,6 +1552,16 @@ class OrderMerchantRepository extends BaseRepository
|
|
1479
|
1552
|
}
|
|
1480
|
1553
|
|
|
1481
|
1554
|
|
|
|
1555
|
+
|
|
|
1556
|
+
|
|
|
1557
|
+
|
|
|
1558
|
+
|
|
|
1559
|
+
|
|
|
1560
|
+
|
|
|
1561
|
+
|
|
|
1562
|
+
|
|
|
1563
|
+
|
|
|
1564
|
+
|
|
1482
|
1565
|
/**
|
|
1483
|
1566
|
* 佣金加入账单
|
|
1484
|
1567
|
* @param $title
|
|
|
@@ -1498,9 +1581,9 @@ class OrderMerchantRepository extends BaseRepository
|
|
1498
|
1581
|
if ($commission_type != 5) {
|
|
1499
|
1582
|
$promoter_rate_technology = systemConfig('promoter_rate_technology');
|
|
1500
|
1583
|
if (floatval($promoter_rate_technology)) {
|
|
1501
|
|
- $number = $number - ($number * $promoter_rate_technology / 100);
|
|
|
1584
|
+ // $number = $number - ($number * $promoter_rate_technology / 100);
|
|
1502
|
1585
|
// var_dump(=$number-$number*$promoter_rate_technology)
|
|
1503
|
|
- $mark .= ",扣除技术服务费" . $promoter_rate_technology . "%";
|
|
|
1586
|
+ // $mark .= ",扣除技术服务费" . $promoter_rate_technology . "%";
|
|
1504
|
1587
|
}
|
|
1505
|
1588
|
}
|
|
1506
|
1589
|
|