6
0
Fork 0

添加配置管理项

release
vine_liutk 2021-12-25 16:25:52 +08:00
parent 155cd897a9
commit da8c21932d
13 changed files with 755 additions and 346 deletions

View File

@ -90,7 +90,9 @@ class AdAddressController extends AdminController
return Form::make(new AdAddress(), function (Form $form) {
$form->display('id');
$form->text('key')->required();
$form->text('key')->rules(function (Form $form) {
return 'unique:ad_addresses,key,'.$form->model()->id.',id';
})->required();
$form->text('name');
$form->text('dimensions')->help(__('admin_message.ad-address.dimensions.help'));
$form->switch('is_show');

View File

@ -0,0 +1,91 @@
<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\Setting;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Grid\Column;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Show;
class SettingController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new Setting(), function (Grid $grid) {
$grid->column('id')->sortable();
$grid->column('key')->label();
$grid->column('remarks');
$grid->column('value')
->if(function () {
return Admin::user()->can('dcat.admin.settings.edit');
})
->then(function (Column $column) {
$column->editable();
});
$grid->column('created_at')->sortable();
//排序
$grid->model()->orderBy('created_at', 'desc');
/** 操作 **/
//新增
if (Admin::user()->can('dcat.admin.settings.create')) {
$grid->disableCreateButton(false);
$grid->enableDialogCreate();
}
//删除以及自定义操作
$grid->actions(function (Grid\Displayers\Actions $actions) {
$actions->disableDelete(Admin::user()->cannot('dcat.admin.ads.destroy'));
});
$grid->quickSearch('key')->placeholder('搜索key');
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new Setting(), function (Show $show) {
$show->field('id');
$show->field('key');
$show->field('value');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new Setting(), function (Form $form) {
$form->display('id');
$form->text('key')->rules(function (Form $form) {
return 'unique:settings,key,'.$form->model()->id.',id';
})->required();
$form->text('value');
$form->text('remarks');
$form->display('created_at');
$form->display('updated_at');
});
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Admin\Repositories;
use App\Models\Setting as Model;
use Dcat\Admin\Repositories\EloquentRepository;
class Setting extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
}

View File

@ -115,6 +115,10 @@ Route::group([
'index', 'create', 'store', 'edit', 'update', 'destroy',
]);
$router->resource('settings', 'SettingController')->only([
'index', 'create', 'store', 'edit', 'update', 'destroy',
]);
/** api接口 **/
$router->get('api/product-categories', 'ProductCategoryController@categories')->name('api.product_categories');
$router->get('api/product-group-details', 'ProductGroupController@details')->name('api.product_group_details');

View File

@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Setting extends Model
{
use HasFactory;
use HasDateTimeFormatter;
protected $fillable = [
'key', 'value', 'remarks',
];
}

27
app/helpers.php 100644
View File

@ -0,0 +1,27 @@
<?php
use App\Models\Setting;
if (!function_exists('app_settings')) {
function app_settings($key = null, $default = null)
{
// app('config')->set($key);
// dd(123456);
if (is_null($key)) {
return $default;
}
if (is_array($key)) {
foreach ($key as $i => $value) {
Setting::updateOrCreate([
'key' => $i,
], [
'value' => $value,
]);
}
return $key;
}
return Setting::where('key', $key)->value('value', $default);
}
}

View File

@ -40,7 +40,10 @@
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
},
"files": [
"app/helpers.php"
]
},
"autoload-dev": {
"psr-4": {

View File

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSettingsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('settings', function (Blueprint $table) {
$table->id();
$table->string('key', 50)->unique()->comment('key');
$table->text('value')->nullable()->comment('值');
$table->string('remarks')->nullable()->comment('备注');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('settings');
}
}

View File

@ -237,6 +237,11 @@ class AdminMenuSeeder extends Seeder
'icon' => '',
'uri' =>'auth/menus',
],
[
'title' =>'配置管理',
'icon' => '',
'uri' => 'settings',
],
],
],
];

View File

@ -0,0 +1,126 @@
<?php
namespace Database\Seeders;
use App\Models\Setting;
use Illuminate\Database\Seeder;
class AppSettingSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
foreach ([
'app_name' => [
'value' => '子春生',
'remarks'=>'应用名称',
],
'order_payment_expires_at' => [
'value' => 1800,
'remarks' => '订单支付过期时间(秒)',
],
'sale_after_expire_days' => [
'value' => 7,
'remarks' => '售后过期时间(天)',
],
'sign_click_points' => [
'value' => 5,
'remarks' => '签到送积分(分)',
],
'sign_click_continue' => [
'value' => 7,
'remarks' => '每连续N天签到额外奖励',
],
'sign_click_continue_points' => [
'value' => 10,
'remarks' => '每连续签到额外奖励(分)',
],
'article_help' => [
'value' => 1,
'remarks' => '帮助文章指定分类ID',
],
'article_agreement' => [
'value' => 2,
'remarks' => '协议文章指定分类ID',
],
'article_agreement' => [
'value' => 3,
'remarks' => '健康文章指定分类ID',
],
'article_about_us' => [
'value' => env('APP_URL', '').'/h5/articles/1',
'remarks' => '关于我们文章指定(链接)',
],
'article_user_promotion_agreement' => [
'value' => env('APP_URL', '').'/h5/articles/2',
'remarks' => '服务协议文章指定(链接)',
],
'article_user_hide_agreement' => [
'value' => env('APP_URL', '').'/h5/articles/3',
'remarks' => '隐私协议文章指定(链接)',
],
'kuaidi100_is_use' => [
'value' => true,
'remarks' => '快递100是否开启',
],
'kuaidi100_callback' => [
'value' => env('APP_URL', '').'/callback/kuaidi100',
'remarks' => '快递100回调地址链接',
],
'kuaidi100_app_key' => [
'value' => 'BTvgbjti4727',
'remarks' => '快递100APP_KEY',
],
'kuaidi100_customer' => [
'value' => '064109188EC4D85DA655DFC342144C6A',
'remarks' => '快递100CUSTOMER',
],
'kuaidi100_secret' => [
'value' => '1bd287d1981749f2a30ea74cac0ab99c',
'remarks' => '快递100SECRET',
],
'kuaidi100_userid' => [
'value' => 'ec0b6ec7729d4f22824cfd3c519dd45b',
'remarks' => '快递100USER_ID',
],
'mall_push_app_id' => [
'value' => 'iikmCoESID8bC1LhOPG1r8',
'remarks' => '个推APP_ID',
],
'mall_push_app_key' => [
'value' => 'JX33P0wP8bAQprI953hpN6',
'remarks' => '个推APP_KEY',
],
'mall_push_app_secret' => [
'value' => 'a3u3B6lXjq6fPTBlOGiOc9',
'remarks' => '个推APP_SECRET',
],
'mall_push_master_secret' => [
'value' => 'MAxmqomwo597xJeDuMCvx1',
'remarks' => '个推APP_MASTER_SECRET',
],
'invite_uri' => [
'value' => '',
'remarks' => '分享邀请地址(链接)',
],
'search_hot_keys' => [
'value' => '搜索热词,分词1,分词2,分词3',
'remarks'=>'搜索热词(半角逗号,隔开)',
],
] as $key => $values) {
Setting::firstOrCreate(['key' => $key], $values);
}
}
}

View File

@ -20,6 +20,7 @@ class DatabaseSeeder extends Seeder
AdminPermissionSeeder::class,
ProductPartSeeder::class,
AdAddressSeeder::class,
AppSettingSeeder::class,
]);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
<?php
return [
'labels' => [
'Setting' => '配置管理',
'settings' => '配置管理',
],
'fields' => [
'key' => 'key',
'value' => '值',
'remarks' => '备注',
],
'options' => [
],
];