|
|
@@ -787,11 +787,14 @@ where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMo
|
|
787
|
787
|
'hf_clear_time' => $close_time
|
|
788
|
788
|
]);
|
|
789
|
789
|
}
|
|
790
|
|
- //
|
|
|
790
|
+ // 如果 当前时间 > 汇付分账成功时间
|
|
791
|
791
|
if (isset($res['status']) && time() > strtotime($close_time)) {
|
|
|
792
|
+ // 计算 平台收支明细 金额
|
|
792
|
793
|
if ($store_order['mer_id'] == 496) {
|
|
|
794
|
+ // 实际支付金额 - 发放的养老金 - 手续费
|
|
793
|
795
|
$ru_money = $store_order['pay_price'] - $yanglao - $res['fee_amt'];
|
|
794
|
796
|
} else {
|
|
|
797
|
+ // 实际支付金额 - 发放的养老金 - 手续费 有问题,??
|
|
795
|
798
|
$ru_money = $store_order['pay_price'] * (1 - $shop_bonus_setting['shop_bonus_rate'] / 100) - $res['fee_amt'] + +$store_order['pay_postage'];
|
|
796
|
799
|
}
|
|
797
|
800
|
$store_order['pay_time'] = '';//线上支付的
|
|
|
@@ -1151,6 +1154,420 @@ where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMo
|
|
1151
|
1154
|
return app('json')->success('获取平台收支明细成功');
|
|
1152
|
1155
|
}
|
|
1153
|
1156
|
|
|
|
1157
|
+ public function platform_income_detail_get1()
|
|
|
1158
|
+ {
|
|
|
1159
|
+
|
|
|
1160
|
+ // 1、获取所有 商户 商户名称非空, 状态为正常、商户状态为开启
|
|
|
1161
|
+ $merchant_list = Db::name('merchant')
|
|
|
1162
|
+ ->where('status', 1)
|
|
|
1163
|
+ ->where('mer_state', 1)
|
|
|
1164
|
+ ->where("mer_name != ''")
|
|
|
1165
|
+ ->column('mer_id');
|
|
|
1166
|
+
|
|
|
1167
|
+ // 2、获取 已有的 平台收支明细,并创建 唯一的 key
|
|
|
1168
|
+ $unique_list = [];
|
|
|
1169
|
+ $enterprise_platform_income_detail_list = Db::name('enterprise_platform_income_detail')
|
|
|
1170
|
+ ->select()
|
|
|
1171
|
+ ->toArray();
|
|
|
1172
|
+ foreach ($enterprise_platform_income_detail_list as $item) {
|
|
|
1173
|
+ // deal_type : '交易类型 1自营订单入账(商户) 2佣金提现到账(商户) 3订单支付 4商户佣金提现 5用户佣金提现 6订单入账 7 创客自营订单让利 '
|
|
|
1174
|
+ // user_extra_id : 提现表id
|
|
|
1175
|
+ $unique_list[] = $item['deal_type'] . $item['uid'] . $item['order_sn'] . $item['order_id'] . $item['user_extra_id'] . $item['mer_id'];
|
|
|
1176
|
+ }
|
|
|
1177
|
+
|
|
|
1178
|
+ // 3、获取订单信息
|
|
|
1179
|
+ // 1自营订单入账金额=已结算订单金额-运费-养老金-汇付通道服务费; 订单结算的时候才统计
|
|
|
1180
|
+ // 查询 该商户 所有的 平台订单(已支付、平台订单、已结算)
|
|
|
1181
|
+ $store_order_list = Db::name('store_order')
|
|
|
1182
|
+ ->whereIn('mer_id', $merchant_list)
|
|
|
1183
|
+ ->where('paid', 1)
|
|
|
1184
|
+ ->where('douhuomall', 0)
|
|
|
1185
|
+ ->where('is_settlement', 1)
|
|
|
1186
|
+ ->order('order_id', 'desc')
|
|
|
1187
|
+ ->select()
|
|
|
1188
|
+ ->toArray();
|
|
|
1189
|
+ $store_order_map = array_reduce($store_order_list, function($result, $order) {
|
|
|
1190
|
+ // 根据 mer_id 进行分组
|
|
|
1191
|
+ $result[$order['mer_id']][] = $order;
|
|
|
1192
|
+ return $result;
|
|
|
1193
|
+ }, []);
|
|
|
1194
|
+ // 用户订单表
|
|
|
1195
|
+ $group_order = Db::name('store_group_order')
|
|
|
1196
|
+ ->whereIn('group_order_id', array_column($store_order_list,'group_order_id'))
|
|
|
1197
|
+ ->select()
|
|
|
1198
|
+ ->toArray();
|
|
|
1199
|
+ $group_order_map = array_column($group_order, null, 'group_order_id');
|
|
|
1200
|
+ // // 查询分账信息
|
|
|
1201
|
+ // $store_split_order = Db::name('store_split_order')
|
|
|
1202
|
+ // ->whereIn('group_order_id', array_column($group_order,'group_order_sn'))
|
|
|
1203
|
+ // ->where('status', 1)
|
|
|
1204
|
+ // ->select()
|
|
|
1205
|
+ // ->toArray();
|
|
|
1206
|
+ // $store_split_order_map = array_column($store_split_order, null, 'group_order_id');
|
|
|
1207
|
+
|
|
|
1208
|
+ // 4、循环所有商户ID
|
|
|
1209
|
+ /** @var OrderMerchantRepository $OrderMerchantRepository */
|
|
|
1210
|
+ $OrderMerchantRepository = app()->make(OrderMerchantRepository::class);
|
|
|
1211
|
+ foreach ($merchant_list as $mer_id) {
|
|
|
1212
|
+ foreach ($store_order_map[$mer_id] as $store_order) {
|
|
|
1213
|
+ // 判断该笔订单是否已 存在 平台收支明细表 的记录中
|
|
|
1214
|
+ if (!in_array('1' . $store_order['uid'] . $store_order['order_sn'] . $store_order['order_id'] . '0' . $mer_id, $unique_list)) {
|
|
|
1215
|
+ if (empty($group_order_map[$store_order['group_order_id']])) continue;
|
|
|
1216
|
+ // 经过和领导确认,入账 金额为 订单金额 - 让利金额 - 手续费
|
|
|
1217
|
+
|
|
|
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'];
|
|
|
1222
|
+ }
|
|
|
1223
|
+
|
|
|
1224
|
+ Db::name('enterprise_platform_income_detail')
|
|
|
1225
|
+ ->insert([
|
|
|
1226
|
+ 'mer_id' => $mer_id,
|
|
|
1227
|
+ 'uid' => $store_order['uid'],
|
|
|
1228
|
+ 'title' => '自营订单入账',
|
|
|
1229
|
+ '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,
|
|
|
1232
|
+ 'deal_type' => 1,
|
|
|
1233
|
+ 'order_id' => $store_order['order_id'],
|
|
|
1234
|
+ 'order_sn' => $store_order['order_sn'],
|
|
|
1235
|
+ 'user_extra_id' => '',
|
|
|
1236
|
+ 'pm' => 1,
|
|
|
1237
|
+ 'create_time' => date('Y-m-d H:i:s'),
|
|
|
1238
|
+ ]);
|
|
|
1239
|
+ unset($close_time);
|
|
|
1240
|
+ }
|
|
|
1241
|
+
|
|
|
1242
|
+ }
|
|
|
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';
|
|
|
1281
|
+ for ($i = 0; $i < 1000; $i++) {
|
|
|
1282
|
+ $day = date('Y-m-d', strtotime("+{$i} days", strtotime($start_time)));
|
|
|
1283
|
+ if (strtotime($day) > time()) {
|
|
|
1284
|
+ break;
|
|
|
1285
|
+ }
|
|
|
1286
|
+ $this->cron($day, $mer_id);
|
|
|
1287
|
+ }
|
|
|
1288
|
+ }
|
|
|
1289
|
+
|
|
|
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用户佣金提现
|
|
|
1335
|
+ $user_extract_list = Db::name('user_extract')
|
|
|
1336
|
+ ->field('extract_id,uid,extract_type,extract_price,service_money,order_sn,status_time')
|
|
|
1337
|
+ ->where('status', 1)
|
|
|
1338
|
+ ->order('extract_id', 'desc')
|
|
|
1339
|
+ // ->limit(100)
|
|
|
1340
|
+ ->select()
|
|
|
1341
|
+ ->toArray();
|
|
|
1342
|
+ foreach ($user_extract_list as $user_extract) {
|
|
|
1343
|
+ if (in_array('5' . $user_extract['uid'] . $user_extract['order_sn'] . '0' . $user_extract['extract_id'] . $mer_id, $unique_list)) continue;
|
|
|
1344
|
+ Db::name('enterprise_platform_income_detail')
|
|
|
1345
|
+ ->insert([
|
|
|
1346
|
+ 'mer_id' => $mer_id,
|
|
|
1347
|
+ 'uid' => $user_extract['uid'],
|
|
|
1348
|
+ 'title' => '用户佣金提现',
|
|
|
1349
|
+ 'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy2'),
|
|
|
1350
|
+ 'deal_time' => $user_extract['status_time'],
|
|
|
1351
|
+ 'money' => bcsub($user_extract['extract_price'], $user_extract['service_money'], 2),
|
|
|
1352
|
+ 'deal_type' => 5,
|
|
|
1353
|
+ 'order_id' => '',
|
|
|
1354
|
+ 'order_sn' => $user_extract['order_sn'],
|
|
|
1355
|
+ 'user_extra_id' => $user_extract['extract_id'],
|
|
|
1356
|
+ 'pm' => 0,
|
|
|
1357
|
+ 'create_time' => date('Y-m-d H:i:s'),
|
|
|
1358
|
+ ]);
|
|
|
1359
|
+ }
|
|
|
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('获取平台收支明细成功');
|
|
|
1569
|
+ }
|
|
|
1570
|
+
|
|
1154
|
1571
|
public function clear_platform_income_detail()
|
|
1155
|
1572
|
{
|
|
1156
|
1573
|
|