order-profit send
parent
406a3d17b5
commit
81ba6f420d
|
|
@ -79,7 +79,7 @@ class OrderProfitCommand extends Command
|
|||
}
|
||||
|
||||
// 没有待付款的提成记录
|
||||
Order::where(fn($q) => $q->whereHas('profits', fn($q) => $q->where('status', 2))->orWhereDoesntHave('profits'))
|
||||
Order::where(fn($q) => $q->whereHas('profits', fn($q) => $q->where('status', '!=', 2))->orWhereDoesntHave('profits'))
|
||||
// 订单已完成
|
||||
->where('status', Order::STATUS_COMPLETED)
|
||||
// 没有售后订单
|
||||
|
|
|
|||
|
|
@ -191,6 +191,7 @@ class DistributeService
|
|||
$filtered->push($item);
|
||||
}
|
||||
}
|
||||
dd($filtered->toArray(), $money);
|
||||
if ($money < 1) {
|
||||
throw new BizException('金额小于 1, 无法打款');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Factories;
|
||||
|
||||
use App\Models\Order;
|
||||
use App\Models\OrderProfit;
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
class OrderProfitFactory extends Factory
|
||||
{
|
||||
protected $model = OrderProfit::class;
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function definition()
|
||||
{
|
||||
$order = Order::inRandomOrder()->first();
|
||||
$user = User::inRandomOrder()->whereHas('agent')->first();
|
||||
$agent = $user->agent;
|
||||
return [
|
||||
'order_id' => $order->id,
|
||||
'from_user_id' => $order->user_id,
|
||||
'user_id' => $user->id,
|
||||
'role' => $agent->slug . '-' . $agent->sort,
|
||||
'role_name' => $agent->name,
|
||||
'growth_value' => 0,
|
||||
'ratio' => 0,
|
||||
'money' => $this->faker->randomFloat(2, 0, 1),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\OrderProfit;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class OrderProfitSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
OrderProfit::truncate();
|
||||
OrderProfit::factory()->count(100)->create(['status' => 4]);
|
||||
}
|
||||
}
|
||||
|
|
@ -2,10 +2,11 @@
|
|||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use App\Models\Agent;
|
||||
use App\Models\OrderProfit;
|
||||
use App\Services\DistributeService;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class ExampleTest extends TestCase
|
||||
{
|
||||
|
|
@ -16,26 +17,13 @@ class ExampleTest extends TestCase
|
|||
*/
|
||||
public function test_example()
|
||||
{
|
||||
// 过滤掉 不是代理身份 的用户
|
||||
// 过滤掉 相同等级 的 后者 用户
|
||||
// 过滤掉等级 低于 上一个分钱 的用户
|
||||
$parents = [2, 3, 1, 5, 6, null];
|
||||
$filtered = [];
|
||||
$last = null;
|
||||
foreach($parents as $item) {
|
||||
if (!$item) {
|
||||
continue;
|
||||
}
|
||||
if (in_array($item, $filtered)) {
|
||||
continue;
|
||||
}
|
||||
if ($last && $item < $last) {
|
||||
continue;
|
||||
}
|
||||
$last = $item;
|
||||
array_push($filtered, $item);
|
||||
}
|
||||
|
||||
dd($filtered);
|
||||
$service = new DistributeService();
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
$service->wechatTransfers(OrderProfit::whereIn('id', [1, 5])->get());
|
||||
DB::commit();
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue