|
|
@@ -6,12 +6,16 @@ use App\Module\Farm\AdminControllers\Helper\FilterHelper;
|
|
|
use App\Module\Farm\AdminControllers\Helper\FormHelper;
|
|
|
use App\Module\Farm\AdminControllers\Helper\GridHelper;
|
|
|
use App\Module\Farm\AdminControllers\Helper\ShowHelper;
|
|
|
+use App\Module\Farm\AdminControllers\Tools\RefreshCheckTool;
|
|
|
+use App\Module\Farm\AdminControllers\Tools\SyncFarmHouseJsonTool;
|
|
|
+use App\Module\Farm\DCache\FarmHouseJsonConfig;
|
|
|
use App\Module\Farm\Repositories\FarmHouseConfigRepository;
|
|
|
use Dcat\Admin\Form;
|
|
|
use Dcat\Admin\Grid;
|
|
|
use Dcat\Admin\Show;
|
|
|
use UCore\DcatAdmin\AdminController;
|
|
|
use Spatie\RouteAttributes\Attributes\Resource;
|
|
|
+use Spatie\RouteAttributes\Attributes\Get;
|
|
|
|
|
|
/**
|
|
|
* 房屋等级配置管理控制器
|
|
|
@@ -19,6 +23,37 @@ use Spatie\RouteAttributes\Attributes\Resource;
|
|
|
#[Resource('farm-house-configs', names: 'dcat.admin.farm-house-configs')]
|
|
|
class FarmHouseConfigController extends AdminController
|
|
|
{
|
|
|
+ /**
|
|
|
+ * 生成房屋配置JSON数据
|
|
|
+ */
|
|
|
+ #[Get('farm-house-configs/generate-json')]
|
|
|
+ public function generateJson()
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ // 直接调用命令生成JSON
|
|
|
+ $process = new \Symfony\Component\Process\Process(['php', 'artisan', 'farm:generate-house-json']);
|
|
|
+ $process->setWorkingDirectory(base_path());
|
|
|
+ $process->run();
|
|
|
+
|
|
|
+ if (!$process->isSuccessful()) {
|
|
|
+ return response()->json([
|
|
|
+ 'status' => 'error',
|
|
|
+ 'message' => 'JSON生成失败: ' . $process->getErrorOutput()
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return response()->json([
|
|
|
+ 'status' => 'success',
|
|
|
+ 'message' => 'JSON生成成功'
|
|
|
+ ]);
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ return response()->json([
|
|
|
+ 'status' => 'error',
|
|
|
+ 'message' => 'JSON生成失败: ' . $e->getMessage()
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 页面标题
|
|
|
*
|
|
|
@@ -41,6 +76,21 @@ class FarmHouseConfigController extends AdminController
|
|
|
protected function grid()
|
|
|
{
|
|
|
return Grid::make(new FarmHouseConfigRepository(), function (Grid $grid) {
|
|
|
+ // 检查配置表状态
|
|
|
+ $status = RefreshCheckTool::checkSyncStatus();
|
|
|
+
|
|
|
+ if ($status['is_synced']) {
|
|
|
+ admin_success('JSON配置表状态', $status['message']);
|
|
|
+ } else {
|
|
|
+ admin_warning('JSON配置表状态', $status['message']);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加工具按钮
|
|
|
+ $grid->tools([
|
|
|
+ new RefreshCheckTool($status['should_display']),
|
|
|
+ new SyncFarmHouseJsonTool($status['should_display'])
|
|
|
+ ]);
|
|
|
+
|
|
|
$helper = new GridHelper($grid, $this);
|
|
|
|
|
|
$helper->columnId();
|