Sfoglia il codice sorgente

重写平台明细日账单月账单

sunxiaobiao 1 anno fa
parent
commit
64d30d2db0
1 ha cambiato i file con 36 aggiunte e 300 eliminazioni
  1. 36 300
      app/controller/api/cron/CommissionCron.php

+ 36 - 300
app/controller/api/cron/CommissionCron.php

@@ -1197,6 +1197,18 @@ where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMo
1197
             ->select()
1197
             ->select()
1198
             ->toArray();
1198
             ->toArray();
1199
         $group_order_map = array_column($group_order, null, 'group_order_id');
1199
         $group_order_map = array_column($group_order, null, 'group_order_id');
1200
+        // 京豆
1201
+        $jingdou_list = Db::name("user_sign_jingdou")
1202
+            ->where('order_type', '=','0')
1203
+            ->where('status', '=',1)
1204
+            ->whereIn('order_id', array_column($store_order_list,'order_id'))
1205
+            ->select()
1206
+            ->toArray();
1207
+        $jingdou_map = array_reduce($jingdou_list, function($result, $jingdou) {
1208
+            // 根据 mer_id 进行分组
1209
+            $result[$jingdou['order_id']][] = $jingdou;
1210
+            return $result;
1211
+        }, []);
1200
         // // 查询分账信息
1212
         // // 查询分账信息
1201
         // $store_split_order = Db::name('store_split_order')
1213
         // $store_split_order = Db::name('store_split_order')
1202
         //     ->whereIn('group_order_id', array_column($group_order,'group_order_sn'))
1214
         //     ->whereIn('group_order_id', array_column($group_order,'group_order_sn'))
@@ -1215,69 +1227,45 @@ where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMo
1215
                     if (empty($group_order_map[$store_order['group_order_id']])) continue;
1227
                     if (empty($group_order_map[$store_order['group_order_id']])) continue;
1216
                     // 经过和领导确认,入账 金额为 订单金额 - 让利金额 - 手续费
1228
                     // 经过和领导确认,入账 金额为 订单金额 - 让利金额 - 手续费
1217
 
1229
 
1218
-                    if ($store_order['mer_id'] == 496 || $store_order['mer_id'] == 496 || $store_order['mer_id'] == 496) {
1219
-                        $ru_money = $store_order['pay_price'] - $yanglao;
1220
-                    } else {
1221
-                        $ru_money = $store_order['pay_price'] * (1 - $shop_bonus_setting['shop_bonus_rate'] / 100) + $store_order['pay_postage'];
1230
+                    $money = 0.00;
1231
+                    $vr = 0.00;
1232
+                    $jd = 0.00;
1233
+                    $fg = 0.00;
1234
+                    if (!empty($store_order['fzone_pay_type'])) {
1235
+                        $cost = bcsub($store_order['total_price'], $store_order['con_pri'] ?: 0.00, 2);
1236
+                        if (in_array($store_order['fzone_pay_type'], ['a2', 'a3', 'b2', 'b4', 'b6'])) {
1237
+                            $money = $cost;
1238
+                        } else if (in_array($store_order['fzone_pay_type'], ['a1', 'b1', 'b5'])) {
1239
+                            $vr = $cost;
1240
+                        } else if (in_array($store_order['fzone_pay_type'], ['c1'])) {
1241
+                            $fg = $cost;
1242
+                        }
1243
+                    }
1244
+                    if (!empty($jingdou_map[$store_order['order_id']])) {
1245
+                        $jd = array_sum(array_column($jingdou_map[$store_order['order_id']], 'number'));
1222
                     }
1246
                     }
1223
 
1247
 
1224
                     Db::name('enterprise_platform_income_detail')
1248
                     Db::name('enterprise_platform_income_detail')
1225
                         ->insert([
1249
                         ->insert([
1226
                             'mer_id' => $mer_id,
1250
                             'mer_id' => $mer_id,
1227
                             'uid' => $store_order['uid'],
1251
                             'uid' => $store_order['uid'],
1228
-                            'title' => '自营订单入账',
1252
+                            'title' => '订单入账',
1229
                             'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy2'),
1253
                             'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy2'),
1230
-                            'deal_time' => isset($close_time) ? $close_time : ((isset($store_order['pay_time']) && $store_order['pay_time']) ? $store_order['pay_time'] : date('Y-m-d H:i:s')),
1231
-                            'money' => $ru_money,
1254
+                            'deal_time' => $store_order['pay_time'] ?: date('Y-m-d H:i:s'),
1255
+                            'money' => $money,
1232
                             'deal_type' => 1,
1256
                             'deal_type' => 1,
1233
                             'order_id' => $store_order['order_id'],
1257
                             'order_id' => $store_order['order_id'],
1234
                             'order_sn' => $store_order['order_sn'],
1258
                             'order_sn' => $store_order['order_sn'],
1235
                             'user_extra_id' => '',
1259
                             'user_extra_id' => '',
1236
                             'pm' => 1,
1260
                             'pm' => 1,
1237
                             'create_time' => date('Y-m-d H:i:s'),
1261
                             'create_time' => date('Y-m-d H:i:s'),
1262
+                            'vr' => $vr,
1263
+                            'jd' => $jd,
1264
+                            'fg' => $fg
1238
                         ]);
1265
                         ]);
1239
-                    unset($close_time);
1240
                 }
1266
                 }
1241
-
1242
             }
1267
             }
1243
-            //2佣金提现到账 提现成功统计
1244
-            //            $user_extract_list = Db::name('user_extract')
1245
-            //                ->field('extract_id,uid,extract_type,extract_price,service_money,order_sn,status_time')
1246
-            //                ->where('status', 1)
1247
-            //                ->where('withdrawal_type', 3)
1248
-            //                ->where('extract_type', '<>', 4)
1249
-            //                ->when($uids, function ($query) use ($uids) {
1250
-            //                    $query->whereIn('uid', $uids);
1251
-            //                })
1252
-            //                ->order('extract_id', 'desc')
1253
-            ////                ->limit(100)
1254
-            //                ->select()
1255
-            //                ->toArray();
1256
-            //            foreach ($user_extract_list as $user_extract) {
1257
-            //                if (in_array('2' . $user_extract['uid'] . $user_extract['order_sn'] . '0' . $user_extract['extract_id'], $unique_list)) continue;
1258
-            //                $enterprise_platform_income_detail = Db::name('enterprise_platform_income_detail')
1259
-            //                    ->where('deal_type', 2)
1260
-            //                    ->where('user_extra_id', $user_extract['extract_id'])
1261
-            //                    ->find();
1262
-            //                if (!$enterprise_platform_income_detail) {
1263
-            //                    Db::name('enterprise_platform_income_detail')
1264
-            //                        ->insert([
1265
-            //                            'mer_id'        => $mer_id,
1266
-            //                            'uid'           => $user_extract['uid'],
1267
-            //                            'title'         => '佣金提现支出',
1268
-            //                            'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy2'),
1269
-            //                            'deal_time'     => $user_extract['status_time'],
1270
-            //                            'money'         => bcsub($user_extract['extract_price'], $user_extract['service_money'], 2),
1271
-            //                            'deal_type'     => 2,
1272
-            //                            'order_id'      => '',
1273
-            //                            'order_sn'      => $user_extract['order_sn'],
1274
-            //                            'user_extra_id' => $user_extract['extract_id'],
1275
-            //                            'pm'            => 1,
1276
-            //                            'create_time'   => date('Y-m-d H:i:s'),
1277
-            //                        ]);
1278
-            //                }
1279
-            //            }
1280
-            $start_time = '2024-04-01';
1268
+            $start_time = '2025-01-22';
1281
             for ($i = 0; $i < 1000; $i++) {
1269
             for ($i = 0; $i < 1000; $i++) {
1282
                 $day = date('Y-m-d', strtotime("+{$i} days", strtotime($start_time)));
1270
                 $day = date('Y-m-d', strtotime("+{$i} days", strtotime($start_time)));
1283
                 if (strtotime($day) > time()) {
1271
                 if (strtotime($day) > time()) {
@@ -1287,56 +1275,12 @@ where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMo
1287
             }
1275
             }
1288
         }
1276
         }
1289
 
1277
 
1290
-        // 计算平台
1291
-        //交易类型 1自营订单入账(商户) 2佣金提现到账(商户) 3订单支付 4商户佣金提现 5用户佣金提现 6订单入账 7 创客自营订单让利
1292
-
1293
-        $mer_id = 0;
1294
-        // 3 订单支付 供应链订单结算后入账到平台的金额
1295
-        $store_order_list = Db::name('store_order')
1296
-            ->where('paid', 1)
1297
-            ->order('order_id', 'desc')
1298
-            //                    ->limit(500)
1299
-            ->select()
1300
-            ->toArray();
1301
-        foreach ($store_order_list as $store_order) {
1302
-            if (in_array('3' . $store_order['uid'] . $store_order['order_sn'] . $store_order['order_id'] . '0' . $mer_id, $unique_list)) continue;
1303
-
1304
-            $group_order = Db::name('store_group_order')
1305
-                ->alias('sgo')
1306
-                ->where('sgo.group_order_id', $store_order['group_order_id'])
1307
-                ->find();
1308
-            if (empty($group_order)) continue;
1309
-
1310
-            $store_split_order = Db::name('store_split_order')
1311
-                ->where('group_order_id', $group_order['group_order_sn'])
1312
-                ->where('status', 1)
1313
-                ->find();
1314
-            if (empty($store_split_order)) continue;
1315
-
1316
-            $close_time = $this->getNextWorkday(date('Y-m-d H:i:s', strtotime('+1 days', strtotime($store_order['pay_time']))));
1317
-
1318
-            Db::name('enterprise_platform_income_detail')
1319
-                ->insert([
1320
-                    'mer_id'        => $mer_id,
1321
-                    'uid'           => $store_order['uid'],
1322
-                    'title'         => '订单支付',
1323
-                    'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy4'),
1324
-                    'deal_time'     => isset($close_time) ? $close_time : ((isset($store_order['pay_time']) && $store_order['pay_time']) ? $store_order['pay_time'] : date('Y-m-d H:i:s')),
1325
-                    'money'         => $store_order['pay_price'] + $store_order['pay_postage'],
1326
-                    'deal_type'     => 3,
1327
-                    'order_id'      => $store_order['order_id'],
1328
-                    'order_sn'      => $store_order['order_sn'],
1329
-                    'user_extra_id' => '',
1330
-                    'pm'            => 1,
1331
-                    'create_time'   => date('Y-m-d H:i:s'),
1332
-                ]);
1333
-        }
1334
         //5用户佣金提现
1278
         //5用户佣金提现
1279
+        $mer_id = 0;
1335
         $user_extract_list = Db::name('user_extract')
1280
         $user_extract_list = Db::name('user_extract')
1336
             ->field('extract_id,uid,extract_type,extract_price,service_money,order_sn,status_time')
1281
             ->field('extract_id,uid,extract_type,extract_price,service_money,order_sn,status_time')
1337
             ->where('status', 1)
1282
             ->where('status', 1)
1338
             ->order('extract_id', 'desc')
1283
             ->order('extract_id', 'desc')
1339
-            //                ->limit(100)
1340
             ->select()
1284
             ->select()
1341
             ->toArray();
1285
             ->toArray();
1342
         foreach ($user_extract_list as $user_extract) {
1286
         foreach ($user_extract_list as $user_extract) {
@@ -1357,214 +1301,6 @@ where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMo
1357
                     'create_time'   => date('Y-m-d H:i:s'),
1301
                     'create_time'   => date('Y-m-d H:i:s'),
1358
                 ]);
1302
                 ]);
1359
         }
1303
         }
1360
-        // 6订单入账:支付成功的订单数据 供应链订单
1361
-        $store_order_list = Db::name('store_order')
1362
-            ->where('paid', 1)
1363
-            ->where('douhuomall', 1)
1364
-            ->where('is_settlement', 1)
1365
-            ->order('order_id', 'desc')
1366
-            //                ->limit(500)
1367
-            ->select()
1368
-            ->toArray();
1369
-
1370
-        foreach ($store_order_list as $store_order) {
1371
-            if (in_array('6' . $store_order['uid'] . $store_order['order_sn'] . $store_order['order_id'] . '0' . $mer_id, $unique_list)) continue;
1372
-            $pay_type = $store_order['pay_type'];
1373
-            if (!in_array($pay_type, [0, 1])) continue;
1374
-
1375
-            $group_order = Db::name('store_group_order')
1376
-                ->alias('sgo')
1377
-                ->where('sgo.group_order_id', $store_order['group_order_id'])
1378
-                ->find();
1379
-            if (empty($group_order)) continue;
1380
-
1381
-            $yanglao = Db::name('user_bill')
1382
-                ->where('order_sn', $store_order['order_sn'])
1383
-                ->where('commission_type', 5)
1384
-                ->value('number');
1385
-            $ru_money = 0;
1386
-            $shop_bonus_setting = merchantConfig($store_order['mer_id'], 'shop_bonus_setting') ?: [
1387
-                'shop_bonus_rate' => 30,
1388
-                'yanglao_rate'    => 5,
1389
-            ];
1390
-            if ($pay_type != 0) {
1391
-                $store_split_order = Db::name('store_split_order')
1392
-                    ->where('group_order_id', $group_order['group_order_sn'])
1393
-                    ->find();
1394
-                if (empty($store_split_order)) continue;
1395
-                if (!$store_order['hf_fee_amt']) {
1396
-                    if ($pay_type == 1) {
1397
-                        //微信
1398
-                        if ($group_order['pay_wx'] == 3) {
1399
-                            $api_key = 'api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871';
1400
-                        } else {
1401
-                            $api_key = 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
1402
-                        }
1403
-                    } else {
1404
-                        //支付宝
1405
-                        $api_key = 'api_live_b23537ed-64b8-45d6-832e-fb228aa9e0a9';
1406
-                    }
1407
-                    $params['payment_confirm_id'] = $store_split_order['hf_pay_id'];
1408
-                    $params['api_key'] = $api_key;
1409
-                    //查询支付确认对象
1410
-                    Db::name("log")->insert(array('data' => '汇付查询支付确认对象参数-----' . json_encode($params)));//日志记录
1411
-                    $res = $this->payment_confirm_query_traits($params);
1412
-                    Db::name("log")->insert(array('data' => '汇付查询支付确认对象返回-----' . json_encode($res)));//日志记录
1413
-                    if (isset($res['status'])) {
1414
-                        Db::name('store_order')->where('order_id', $store_order['order_id'])->update([
1415
-                            'hf_fee_amt'    => $res['fee_amt'],
1416
-                            'hf_clear_time' => $close_time
1417
-                        ]);
1418
-                        $store_order['hf_fee_amt'] = $res['fee_amt'];
1419
-                    }
1420
-                }
1421
-                // 获取分账后一个工作日时间
1422
-                $close_time = $this->getNextWorkday(date('Y-m-d H:i:s', strtotime('+1 days', strtotime($store_order['pay_time']))));
1423
-
1424
-                if (isset($res['status']) && time() > strtotime($close_time)) {
1425
-
1426
-                    if ($store_order['mer_id'] == 496) {
1427
-                        $ru_money = $store_order['pay_price'] - $yanglao - $store_order['hf_fee_amt'];
1428
-                    } else {
1429
-                        $ru_money = $store_order['pay_price'] - $yanglao;
1430
-                    }
1431
-                    $store_order['pay_time'] = '';//线上支付的
1432
-                } else {
1433
-                    continue;
1434
-                }
1435
-            } else {
1436
-                // 订单金额+运费
1437
-                if ($store_order['mer_id'] == 496) {
1438
-                    $ru_money = $store_order['pay_price'] - $yanglao;
1439
-                } else {
1440
-                    $ru_money = $store_order['pay_price'] - $yanglao;
1441
-                }
1442
-            }
1443
-            Db::name('enterprise_platform_income_detail')
1444
-                ->insert([
1445
-                    'mer_id'        => $mer_id,
1446
-                    'uid'           => $store_order['uid'],
1447
-                    'title'         => '订单入账',
1448
-                    'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy2'),
1449
-                    'deal_time'     => isset($close_time) ? $close_time : ((isset($store_order['pay_time']) && $store_order['pay_time']) ? $store_order['pay_time'] : date('Y-m-d H:i:s')),
1450
-                    'money'         => $ru_money,
1451
-                    'deal_type'     => 6,
1452
-                    'order_id'      => $store_order['order_id'],
1453
-                    'order_sn'      => $store_order['order_sn'],
1454
-                    'user_extra_id' => '',
1455
-                    'pm'            => 1,
1456
-                    'create_time'   => date('Y-m-d H:i:s'),
1457
-                ]);
1458
-            unset($close_time);
1459
-        }
1460
-        //7 创客自营订单让利=创客自营订单金额*分润比例-(创客自营订单金额-运费)*养老金比例
1461
-        $store_order_list = Db::name('store_order')
1462
-            ->where('paid', 1)
1463
-            ->where('is_settlement', 1)
1464
-            ->where('douhuomall', 0)
1465
-            ->order('order_id', 'desc')
1466
-            //                    ->limit(500)
1467
-            ->select()
1468
-            ->toArray();
1469
-        foreach ($store_order_list as $store_order) {
1470
-            if (in_array('7' . $store_order['uid'] . $store_order['order_sn'] . $store_order['order_id'] . '0' . $mer_id, $unique_list)) continue;
1471
-            $shop_bonus_setting = merchantConfig($store_order['mer_id'], 'shop_bonus_setting') ?: [
1472
-                'shop_bonus_rate' => 30,
1473
-                'yanglao_rate'    => 5,
1474
-            ];
1475
-            $pay_type = $store_order['pay_type'];
1476
-            if ($pay_type != 0) {
1477
-                $group_order = Db::name('store_group_order')
1478
-                    ->alias('sgo')
1479
-                    ->where('sgo.group_order_id', $store_order['group_order_id'])
1480
-                    ->find();
1481
-                if (empty($group_order)) continue;
1482
-                $store_split_order = Db::name('store_split_order')
1483
-                    ->where('group_order_id', $group_order['group_order_sn'])
1484
-                    ->find();
1485
-                if (empty($store_split_order)) continue;
1486
-                $close_time = $this->getNextWorkday(date('Y-m-d H:i:s', strtotime('+1 days', strtotime($store_order['pay_time']))));
1487
-
1488
-                if (!$store_order['hf_fee_amt']) {
1489
-                    $store_split_order = Db::name('store_split_order')
1490
-                        ->where('group_order_id', $group_order['group_order_sn'])
1491
-                        ->where('status', 1)
1492
-                        ->find();
1493
-                    if (empty($store_split_order)) continue;
1494
-                    if ($pay_type == 1) {
1495
-                        //微信
1496
-                        if ($group_order['pay_wx'] == 3) {
1497
-                            $api_key = 'api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871';
1498
-                        } else {
1499
-                            $api_key = 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
1500
-                        }
1501
-                    } else {
1502
-                        //支付宝
1503
-                        $api_key = 'api_live_b23537ed-64b8-45d6-832e-fb228aa9e0a9';
1504
-                    }
1505
-                    $params['payment_confirm_id'] = $store_split_order['hf_pay_id'];
1506
-                    $params['api_key'] = $api_key;
1507
-                    //查询支付确认对象
1508
-                    Db::name("log")->insert(array('data' => '汇付查询支付确认对象参数-----' . json_encode($params)));//日志记录
1509
-                    $res = $this->payment_confirm_query_traits($params);
1510
-                    Db::name("log")->insert(array('data' => '汇付查询支付确认对象返回-----' . json_encode($res)));//日志记录
1511
-                    // 获取分账后一个工作日时间
1512
-                    $close_time = $this->getNextWorkday(date('Y-m-d H:i:s', strtotime('+1 days', strtotime($store_order['pay_time']))));
1513
-                    if (isset($res['status'])) {
1514
-                        Db::name('store_order')->where('order_id', $store_order['order_id'])->update([
1515
-                            'hf_fee_amt'    => $res['fee_amt'],
1516
-                            'hf_clear_time' => $close_time
1517
-                        ]);
1518
-                        $store_order['hf_fee_amt'] = $res['fee_amt'];
1519
-                    }
1520
-                }
1521
-                $yanglao = Db::name('user_bill')
1522
-                    ->where('order_sn', $store_order['order_sn'])
1523
-                    ->where('commission_type', 5)
1524
-                    ->value('number');
1525
-                if (isset($res['status']) && time() > strtotime($close_time)) {
1526
-                    if ($store_order['mer_id'] == 496) {
1527
-                        $ru_money = $store_order['pay_price'] - $yanglao - $store_order['hf_fee_amt'];
1528
-                    } else {
1529
-                        $ru_money = ($store_order['pay_price'] * $shop_bonus_setting['shop_bonus_rate'] / 100) - $yanglao;
1530
-                    }
1531
-                    $store_order['pay_time'] = '';//线上支付的
1532
-                } else {
1533
-                    continue;
1534
-                }
1535
-            }else{
1536
-                if ($store_order['mer_id'] == 496) {
1537
-                    $ru_money = $store_order['pay_price'] - $yanglao;
1538
-                } else {
1539
-                    $ru_money = ($store_order['pay_price'] * $shop_bonus_setting['shop_bonus_rate'] / 100) - $yanglao;
1540
-                }
1541
-            }
1542
-            Db::name('enterprise_platform_income_detail')
1543
-                ->insert([
1544
-                    'mer_id'        => $mer_id,
1545
-                    'uid'           => $store_order['uid'],
1546
-                    'title'         => '创客自营订单让利',
1547
-                    'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy4'),
1548
-                    'deal_time'     => isset($close_time) ? $close_time : ((isset($store_order['pay_time']) && $store_order['pay_time']) ? $store_order['pay_time'] : date('Y-m-d H:i:s')),
1549
-                    'money'         => $ru_money,
1550
-                    'deal_type'     => 7,
1551
-                    'order_id'      => $store_order['order_id'],
1552
-                    'order_sn'      => $store_order['order_sn'],
1553
-                    'user_extra_id' => '',
1554
-                    'pm'            => 1,
1555
-                    'create_time'   => date('Y-m-d H:i:s'),
1556
-                ]);
1557
-            unset($close_time);
1558
-
1559
-        }
1560
-        $start_time = '2024-04-01';
1561
-        for ($i = 0; $i < 1000; $i++) {
1562
-            $day = date('Y-m-d', strtotime("+{$i} days", strtotime($start_time)));
1563
-            if (strtotime($day) > time()) {
1564
-                break;
1565
-            }
1566
-            $Reconciliation->cron($day, 0);
1567
-        }
1568
         return app('json')->success('获取平台收支明细成功');
1304
         return app('json')->success('获取平台收支明细成功');
1569
     }
1305
     }
1570
 
1306