UserSeeder
parent
514bf58b2a
commit
ef24fc9823
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace App\Admin\Actions\Show;
|
||||
|
||||
use App\Admin\Forms\UserEditPhone as UserEditPhoneForm;
|
||||
use App\Admin\Forms\UserEditVip as UserEditVipForm;
|
||||
use Dcat\Admin\Show\AbstractTool;
|
||||
use Dcat\Admin\Widgets\Modal;
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ class UserEditVip extends AbstractTool
|
|||
|
||||
public function render()
|
||||
{
|
||||
$form = UserEditPhoneForm::make()->payload(['id'=>$this->getKey()]);
|
||||
$form = UserEditVipForm::make()->payload(['id'=>$this->getKey()]);
|
||||
return Modal::make()
|
||||
->lg()
|
||||
->title($this->title)
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ class UserController extends AdminController
|
|||
*/
|
||||
protected function grid()
|
||||
{
|
||||
$builder = User::with(['userInfo', 'wallet', 'balance', 'userInfo.inviterInfo.user']);
|
||||
$builder = User::with(['userInfo', 'wallet', 'balance', 'userInfo.inviterInfo.user', 'userVip.vip']);
|
||||
return Grid::make($builder, function (Grid $grid) {
|
||||
$grid->model()->whereNotNull('phone');
|
||||
$grid->column('id')->sortable()->if(function () {
|
||||
|
|
@ -59,9 +59,10 @@ class UserController extends AdminController
|
|||
$grid->column('userInfo.growth_value')->filter(
|
||||
Grid\Column\Filter\Between::make()
|
||||
)->modal(function ($modal) {
|
||||
$modal->title('消费值');
|
||||
$modal->title('成长值');
|
||||
return UserSalesValueLogSimpleTable::make(['id'=>$this->id]);
|
||||
})->setHeaderAttributes(['style' => 'color:#5b69bc']);
|
||||
$grid->column('userVip.vip.name');
|
||||
// $grid->column('wallet.balance')->display(function ($value) {
|
||||
// $value = bcdiv($value, 100, 2);
|
||||
// if ($this->wallet?->is_frozen) {
|
||||
|
|
@ -149,17 +150,24 @@ class UserController extends AdminController
|
|||
{
|
||||
return function (Row $row) use ($id) {
|
||||
$row->column(5, function ($column) use ($id) {
|
||||
$builder = User::with(['userInfo', 'wallet', 'balance', 'userInfo.inviterInfo.user']);
|
||||
$builder = User::with(['userInfo', 'wallet', 'balance', 'userInfo.inviterInfo.user', 'userVip.vip']);
|
||||
$column->row(Show::make($id, $builder, function (Show $show) {
|
||||
$show->row(function (Show\Row $show) {
|
||||
$show->width(12)->field('id')->width(10, 1);
|
||||
$show->width(6)->field('id');
|
||||
$show->width(6)->field('vip', '代理')->as(function () {
|
||||
return $this->userVip ? $this->userVip->vip->name . '(' .$this->userVip->vip->ratio. '%)' : '';
|
||||
})->badge();
|
||||
$show->width(6)->field('phone');
|
||||
$show->field('user_info.inviter_info.user.phone');
|
||||
$show->field('user_info.nickname');
|
||||
$show->field('user_info.gender')->using(UserInfo::$genderTexts)->label();
|
||||
$show->field('user_info.birthday');
|
||||
// $show->field('user_info.nickname');
|
||||
// $show->field('user_info.gender')->using(UserInfo::$genderTexts)->label();
|
||||
// $show->field('user_info.birthday');
|
||||
|
||||
$show->field('user_info.growth_value');
|
||||
$show->field('profit');
|
||||
$show->field('userInfo.is_company')->as(function ($v) {
|
||||
return $v ? '是' : '否';
|
||||
});
|
||||
|
||||
// $show->field('wallet.balance')->as(function ($value) {
|
||||
// $value = bcdiv($value, 100, 2);
|
||||
|
|
@ -172,9 +180,9 @@ class UserController extends AdminController
|
|||
// $show->field('user_info.points');
|
||||
});
|
||||
$show->row(function (Show\Row $show) {
|
||||
$show->width(6)->field('last_login_ip');
|
||||
$show->field('last_login_at');
|
||||
$show->field('register_ip');
|
||||
// $show->width(6)->field('last_login_ip');
|
||||
$show->width(6)->field('last_login_at');
|
||||
// $show->field('register_ip');
|
||||
$show->field('created_at');
|
||||
});
|
||||
|
||||
|
|
@ -187,9 +195,9 @@ class UserController extends AdminController
|
|||
$tools->append(new UserEditPhone());
|
||||
}
|
||||
// 修改银行卡
|
||||
if (Admin::user()->can('dcat.admin.users.edit_bank')) {
|
||||
$tools->append(new UserEditBank());
|
||||
}
|
||||
// if (Admin::user()->can('dcat.admin.users.edit_bank')) {
|
||||
// $tools->append(new UserEditBank());
|
||||
// }
|
||||
// 设置代理等级
|
||||
if (Admin::user()->can('dcat.admin.users.edit_vip')) {
|
||||
$tools->append(new UserEditVip());
|
||||
|
|
@ -203,10 +211,10 @@ class UserController extends AdminController
|
|||
// $tab->add('可提明细', UserWalletLogSimpleTable::make(['id'=>$id]));
|
||||
// 余额明细
|
||||
// $tab->add('余额明细', UserBalanceLogSimpleTable::make(['id'=>$id]));
|
||||
// 粉丝列表
|
||||
// $tab->add('粉丝列表', UserFansSimpleTable::make(['id'=>$id]));
|
||||
// 下级列表
|
||||
$tab->add('下级列表', UserFansSimpleTable::make(['id'=>$id]));
|
||||
// 上级列表
|
||||
$tab->add('上级列表', UserInviterSimpleTable::make(['id'=>$id]));
|
||||
// $tab->add('上级列表', UserInviterSimpleTable::make(['id'=>$id]));
|
||||
$column->row(Box::make('用户记录', $tab));
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ class OrderPackage extends Form implements LazyRenderable
|
|||
'EMS'=>'EMS',
|
||||
'顺丰速运'=>'顺丰速运',
|
||||
'德邦快递'=>'德邦快递',
|
||||
'自提' => '自提',
|
||||
])->default('韵达快递')->required();
|
||||
$this->text('shipping_number')->required();
|
||||
$products = $order->products->filter(function ($items) {
|
||||
|
|
@ -91,8 +92,8 @@ class OrderPackage extends Form implements LazyRenderable
|
|||
});
|
||||
$this->hasMany('packages', function (Form $form) use ($options) {
|
||||
$form->select('order_product_id')->options($options);
|
||||
$form->number('quantity')->min(1);
|
||||
});
|
||||
$form->number('quantity')->default(1)->min(1);
|
||||
})->required();
|
||||
|
||||
$this->disableResetButton();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace App\Admin\Forms;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\{User, Vip};
|
||||
use Dcat\Admin\Contracts\LazyRenderable;
|
||||
use Dcat\Admin\Traits\LazyWidget;
|
||||
use Dcat\Admin\Widgets\Form;
|
||||
|
|
@ -34,9 +34,24 @@ class UserEditVip extends Form implements LazyRenderable
|
|||
{
|
||||
$id = $this->payload['id'] ?? 0;
|
||||
$user = User::findOrFail($id);
|
||||
$vip_id = $input['vip'];
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
$user->update($input);
|
||||
if ($user->userVip) {
|
||||
if ($vip_id) {
|
||||
$user->userVip->update([
|
||||
'vip_id' => $vip_id
|
||||
]);
|
||||
} else {
|
||||
$user->userVip->delete();
|
||||
}
|
||||
} else {
|
||||
if ($vip_id) {
|
||||
$user->userVip()->create([
|
||||
'vip_id' => $vip_id
|
||||
]);
|
||||
}
|
||||
}
|
||||
DB::commit();
|
||||
} catch (Throwable $th) {
|
||||
DB::rollBack();
|
||||
|
|
@ -54,9 +69,10 @@ class UserEditVip extends Form implements LazyRenderable
|
|||
{
|
||||
$id = $this->payload['id'] ?? 0;
|
||||
$user = User::findOrFail($id);
|
||||
$vips = Vip::orderBy('sort')->get();
|
||||
|
||||
$this->text('old_phone', '旧手机号')->value($user->phone)->disable();
|
||||
$this->text('user_vip', '当前代理')->value(data_get($user, 'userVip.vip.name', ''))->disable();
|
||||
|
||||
$this->mobile('phone')->rules('unique:users,phone', ['unique'=>'该手机号已存在'])->required();
|
||||
$this->select('vip')->options($vips->pluck('name', 'id'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,12 +12,13 @@ class UserFansSimpleTable extends LazyRenderable
|
|||
{
|
||||
$userId = $this->payload['id'] ?? 0;
|
||||
$builder = UserInfo::query();
|
||||
$builder->with('user')->where('inviter_id', $userId);
|
||||
$builder->with(['user', 'user.userVip.vip'])->where('inviter_id', $userId);
|
||||
return Grid::make($builder, function (Grid $grid) {
|
||||
$grid->column('user.phone', '手机号')->link(function ($value) {
|
||||
return admin_url('users/'.$this->user_id);
|
||||
});
|
||||
$grid->column('growth_value', '消费值');
|
||||
$grid->column('user.userVip.vip.name', '代理');
|
||||
$grid->column('growth_value', '成长值');
|
||||
$grid->column('created_at', '注册时间');
|
||||
// $grid->withBorder();
|
||||
$grid->model()->orderBy('created_at', 'desc');
|
||||
|
|
|
|||
|
|
@ -44,9 +44,8 @@ class UserSalesValueLogSimpleTable extends LazyRenderable
|
|||
});
|
||||
// 查出统计数据
|
||||
$salesValue1 = (clone $query)->where('type', '1')->sum('change_sales_value');
|
||||
$salesValue2 = (clone $query)->where('type', '2')->sum('change_sales_value');
|
||||
// 自定义组件
|
||||
return "<div style='padding: 10px;'>个人消费值:".$salesValue1.' <br> 团队消费值:'.$salesValue2.'</div>';
|
||||
return "<div style='padding: 10px;'>个人消费值:".$salesValue1.'</div>';
|
||||
});
|
||||
$grid->filter(function (Grid\Filter $filter) {
|
||||
$filter->expand(false);
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ class OrderPackageService
|
|||
//保存发货单
|
||||
$package->save();
|
||||
|
||||
if (app_settings('kuaidi100.is_use')) {
|
||||
if ($package->shipping_code && app_settings('kuaidi100.is_use')) {
|
||||
$kuaidi100Service = new Kuaidi100Service();
|
||||
$kuaidi100Service->poll($package->shipping_number, $package->shipping_code, $package->consignee_telephone);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use App\Models\Order;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Throwable;
|
||||
|
||||
class DistributeOrder extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'distribute:order {order}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = '生成订单提成记录';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$service = new \App\Services\DistributeService();
|
||||
$order = Order::find($this->argument('order'));
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
DB::commit();
|
||||
$service->storeByOrder($order);
|
||||
} catch (Throwable $th) {
|
||||
DB::rollBack();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -51,7 +51,7 @@ class OrderController extends Controller
|
|||
$rules = $isQuick ? [
|
||||
'product.sku_id' => ['bail', 'required', 'int'],
|
||||
'product.quantity' => ['bail', 'required', 'int', 'min:1'],
|
||||
'shipping_address_id' => ['bail', 'required', 'int'],
|
||||
'shipping_address_id' => ['bail', 'nullable', 'int'],
|
||||
'coupon_id' => ['bail', 'nullable', 'int'],
|
||||
'note' => ['bail', 'nullable', 'string', 'max:255'],
|
||||
] : [
|
||||
|
|
@ -81,7 +81,7 @@ class OrderController extends Controller
|
|||
$user,
|
||||
$input['product']['sku_id'],
|
||||
$input['product']['quantity'],
|
||||
$input['shipping_address_id'],
|
||||
$input['shipping_address_id'] ?? null,
|
||||
$input['coupon_id'] ?? null,
|
||||
$input['note'] ?? null,
|
||||
);
|
||||
|
|
@ -90,7 +90,7 @@ class OrderController extends Controller
|
|||
return $orderService->createShoppingCartOrder(
|
||||
$user,
|
||||
$input['shopping_cart'],
|
||||
$input['shipping_address_id'],
|
||||
$input['shipping_address_id'] ?? null,
|
||||
$input['coupon_id'] ?? null,
|
||||
$input['note'] ?? null,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,12 @@ class UserVip extends Model
|
|||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $fillable = ['vip_id', 'growth_value'];
|
||||
|
||||
protected $attributes = [
|
||||
'growth_value' => 0
|
||||
];
|
||||
|
||||
public function vip()
|
||||
{
|
||||
return $this->belongsTo(Vip::class, 'vip_id');
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\{User, Order, SalesValueLog};
|
||||
use App\Models\{User, Order, SalesValueLog, Vip};
|
||||
|
||||
/**
|
||||
* 分销模块
|
||||
|
|
@ -19,27 +19,42 @@ class DistributeService
|
|||
public function storeByOrder(Order $order)
|
||||
{
|
||||
// 订单已取消
|
||||
if ($order->isCancelled) {
|
||||
if ($order->isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
// 订单成长值
|
||||
$sales_value = $order->sales_value;
|
||||
$user = $order->user;
|
||||
$user->salesValueLogs()->create([
|
||||
'order_id' => $order->id,
|
||||
'order_user_id' => $user_id,
|
||||
'type' => SalesValueLog::TYPE_INDIVIDUAL,
|
||||
'change_sales_value' => $sales_value
|
||||
]);
|
||||
$user->userInfo()->increment('growth_value', $sales_value);
|
||||
// $user->salesValueLogs()->create([
|
||||
// 'order_id' => $order->id,
|
||||
// 'order_user_id' => $order->user_id,
|
||||
// 'type' => SalesValueLog::TYPE_INDIVIDUAL,
|
||||
// 'change_sales_value' => $sales_value
|
||||
// ]);
|
||||
// $user->userInfo()->increment('growth_value', $sales_value);
|
||||
|
||||
|
||||
// 上级返现
|
||||
$parent_ids = array_reverse($user->userInfo->parent_ids);
|
||||
$parents = User::with(['userInfo'])->whereIn('id', $parent_ids)->where('role', '!=', '')->get();
|
||||
// 没有上级是代理身份
|
||||
if ($parents->count() === 0) {
|
||||
return false;
|
||||
$parents = User::with(['userInfo', 'userVip.vip'])->whereIn('id', $parent_ids)->get();
|
||||
// 过滤掉不是代理身份的用户
|
||||
// 当前等级和下一级的等级相同
|
||||
$parents->filter(function ($item) {
|
||||
return $item->userVip ? true : false;
|
||||
});
|
||||
$user_list = collect();
|
||||
foreach($parents as $item) {
|
||||
$user_list->push([
|
||||
'id' => $item->id,
|
||||
'vip_name' => $item->userVip->vip->name ?? '',
|
||||
'vip_id' => $item->userVip->vip_id ?? '',
|
||||
]);
|
||||
}
|
||||
|
||||
// $vip_list = Vip::orderBy('sort', 'desc')->pluk('id');
|
||||
// foreach($vip_list as $vip_id) {
|
||||
|
||||
// }
|
||||
dd($user_list->all());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class OrderService
|
|||
User $user,
|
||||
int $skuId,
|
||||
int $quantity,
|
||||
int $shippingAddressId,
|
||||
?int $shippingAddressId,
|
||||
?int $couponId = null,
|
||||
?string $note = null,
|
||||
?BargainOrder $bargainOrder = null,
|
||||
|
|
@ -105,7 +105,7 @@ class OrderService
|
|||
protected function createOrder(
|
||||
User $user,
|
||||
array $products,
|
||||
int $shippingAddressId,
|
||||
?int $shippingAddressId,
|
||||
?int $couponId = null,
|
||||
?string $note = null,
|
||||
?BargainOrder $bargainOrder = null,
|
||||
|
|
@ -141,12 +141,12 @@ class OrderService
|
|||
|
||||
$order = $this->storeOrder(
|
||||
$user,
|
||||
$shippingAddress,
|
||||
$productsTotalAmount,
|
||||
$couponDiscountAmount,
|
||||
$vipDiscountAmount,
|
||||
$shippingFee,
|
||||
$salesValue,
|
||||
$shippingAddress,
|
||||
$note,
|
||||
$coupon,
|
||||
$bargainOrder,//添加砍价订单逻辑
|
||||
|
|
@ -182,12 +182,12 @@ class OrderService
|
|||
*/
|
||||
protected function storeOrder(
|
||||
User $user,
|
||||
ShippingAddress $shippingAddress,
|
||||
int $productsTotalAmount,
|
||||
int $couponDiscountAmount,
|
||||
int $vipDiscountAmount,
|
||||
int $shippingFee,
|
||||
$salesValue,
|
||||
?ShippingAddress $shippingAddress,
|
||||
?string $note = null,
|
||||
?UserCoupon $coupon = null,
|
||||
?BargainOrder $bargainOrder = null,
|
||||
|
|
@ -220,10 +220,10 @@ class OrderService
|
|||
'sales_value' => $salesValue, // 订单总销售值
|
||||
'note' => $note,
|
||||
// 收货地址
|
||||
'consignee_name' => $shippingAddress->consignee,
|
||||
'consignee_telephone' => $shippingAddress->telephone,
|
||||
'consignee_zone' => $shippingAddress->zone,
|
||||
'consignee_address' => $shippingAddress->address,
|
||||
'consignee_name' => $shippingAddress->consignee??'',
|
||||
'consignee_telephone' => $shippingAddress->telephone??'',
|
||||
'consignee_zone' => $shippingAddress->zone??'',
|
||||
'consignee_address' => $shippingAddress->address??'',
|
||||
//砍价订单金额
|
||||
'bargain_amount'=>$bargainOrder?->bargain_price ?? 0,
|
||||
];
|
||||
|
|
@ -644,10 +644,13 @@ class OrderService
|
|||
* @param \App\Models\ShippingAddress $shippingAddress
|
||||
* @return int
|
||||
*/
|
||||
protected function calculateShippingFee(array $products, ShippingAddress $shippingAddress): int
|
||||
protected function calculateShippingFee(array $products, ?ShippingAddress $shippingAddress): int
|
||||
{
|
||||
// 运费
|
||||
$shippingFee = 0;
|
||||
if (!$shippingAddress) {
|
||||
return $shippingFee;
|
||||
}
|
||||
|
||||
$shippings = [];
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,10 @@
|
|||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
"preferred-install": "dist",
|
||||
"sort-packages": true
|
||||
"sort-packages": true,
|
||||
"allow-plugins": {
|
||||
"easywechat-composer/easywechat-composer": true
|
||||
}
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ return [
|
|||
|
|
||||
*/
|
||||
|
||||
'fallback_locale' => 'en',
|
||||
'fallback_locale' => 'zh_CN',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Factories;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
class UserFactory extends Factory
|
||||
{
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function definition()
|
||||
{
|
||||
$faker = $this->faker;
|
||||
$time = now();
|
||||
return [
|
||||
'phone' => $faker->phoneNumber,
|
||||
'phone_verified_at' => $time,
|
||||
'email' => $faker->email,
|
||||
'email_verified_at' => $time,
|
||||
'register_ip' => $faker->ipv4,
|
||||
'status' => 1
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -299,6 +299,7 @@ class AdminMenuSeeder extends Seeder
|
|||
'icon' => '',
|
||||
'uri' =>'auth/menus',
|
||||
],
|
||||
['title' => '代理等级', 'icon' => '', 'uri' => 'vips'],
|
||||
[
|
||||
'title' =>'配置管理',
|
||||
'icon' => '',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Faker\Generator;
|
||||
use Illuminate\Container\Container;
|
||||
|
||||
class UserSeeder extends Seeder
|
||||
{
|
||||
protected $faker;
|
||||
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
DB::table('user_infos')->truncate();
|
||||
DB::table('user_vips')->truncate();
|
||||
DB::table('socialite_users')->truncate();
|
||||
DB::table('personal_access_tokens')->truncate();
|
||||
DB::table('wallets')->truncate();
|
||||
DB::table('balances')->truncate();
|
||||
DB::table('users')->truncate();
|
||||
$this->faker = $this->withFaker();
|
||||
$this->createUsers(1);
|
||||
}
|
||||
|
||||
protected function createUsers($vip, $parent = null)
|
||||
{
|
||||
if ($vip > 7) {
|
||||
return;
|
||||
}
|
||||
$faker = $this->faker;
|
||||
for ($i = 0; $i < $faker->numberBetween(1, 5); $i++) {
|
||||
$user = $this->createUser($vip, $parent);
|
||||
$this->createUsers($vip + 1, $user);
|
||||
}
|
||||
}
|
||||
|
||||
protected function createUser($vip = null, $inviter = null)
|
||||
{
|
||||
$faker = $this->faker;
|
||||
$time = now();
|
||||
$phone = $this->fakePhone();
|
||||
$email = $this->fakeEmail();
|
||||
$user = User::create([
|
||||
'phone' => $phone,
|
||||
'phone_verified_at' => $time,
|
||||
'email' => $email,
|
||||
'email_verified_at' => $time,
|
||||
'register_ip' => $faker->ipv4,
|
||||
'status' => 1
|
||||
], $inviter);
|
||||
if ($vip && $vip <= 6) {
|
||||
$user->userVip()->create([
|
||||
'vip_id' => $vip
|
||||
]);
|
||||
}
|
||||
return $user;
|
||||
}
|
||||
|
||||
protected function fakePhone()
|
||||
{
|
||||
do {
|
||||
$phone = substr($this->faker->e164PhoneNumber, 1);
|
||||
} while(User::where('phone', $phone)->exists());
|
||||
|
||||
return $phone;
|
||||
}
|
||||
|
||||
protected function fakeEmail()
|
||||
{
|
||||
do {
|
||||
$email = $this->faker->email;
|
||||
} while(User::where('email', $email)->exists());
|
||||
|
||||
return $email;
|
||||
}
|
||||
|
||||
protected function withFaker()
|
||||
{
|
||||
return Container::getInstance()->make(Generator::class);
|
||||
}
|
||||
}
|
||||
|
|
@ -18,14 +18,14 @@ return [
|
|||
'created_at' => '注册时间',
|
||||
'userVip'=>[
|
||||
'vip' => [
|
||||
'name' => '等级',
|
||||
'name' => '代理',
|
||||
],
|
||||
],
|
||||
'userInfo'=>[
|
||||
'avatar' => '头像',
|
||||
'nickname' => '昵称',
|
||||
'code' => '邀请码',
|
||||
'growth_value'=>'消费值',
|
||||
'growth_value'=>'成长值',
|
||||
'inviterInfo'=>[
|
||||
'user'=>[
|
||||
'phone' =>'推荐人手机',
|
||||
|
|
@ -36,7 +36,7 @@ return [
|
|||
'user_info'=>[
|
||||
'avatar' => '头像',
|
||||
'nickname' => '昵称',
|
||||
'growth_value'=>'消费值',
|
||||
'growth_value'=>'成长值',
|
||||
'points'=>'积分',
|
||||
'gender'=>'性别',
|
||||
'birthday'=>'生日',
|
||||
|
|
@ -53,6 +53,7 @@ return [
|
|||
'balance'=>'余额',
|
||||
],
|
||||
'status_remark'=>'备注',
|
||||
'profit' => '累计返利',
|
||||
],
|
||||
'options' => [
|
||||
],
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ return [
|
|||
],
|
||||
'fields' => [
|
||||
'name' => '等级名称',
|
||||
'growth_value' => '等级成长值',
|
||||
'growth_value' => '升级',
|
||||
'sort' => '排序',
|
||||
'ratio' => '比例'
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in New Issue