GenerateTablesController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | saiadmin [ saiadmin快速开发框架 ]
  4. // +----------------------------------------------------------------------
  5. // | Author: sai <1430792918@qq.com>
  6. // +----------------------------------------------------------------------
  7. namespace plugin\saiadmin\app\controller\tool;
  8. use plugin\saiadmin\basic\BaseController;
  9. use plugin\saiadmin\app\logic\tool\GenerateTablesLogic;
  10. use plugin\saiadmin\app\validate\tool\GenerateTablesValidate;
  11. use support\Request;
  12. use support\Response;
  13. /**
  14. * 代码生成控制器
  15. */
  16. class GenerateTablesController extends BaseController
  17. {
  18. /**
  19. * 构造
  20. */
  21. public function __construct()
  22. {
  23. $this->logic = new GenerateTablesLogic();
  24. $this->validate = new GenerateTablesValidate;
  25. parent::__construct();
  26. }
  27. /**
  28. * 数据列表
  29. * @param Request $request
  30. * @return Response
  31. */
  32. public function index(Request $request): Response
  33. {
  34. $where = $request->more([
  35. ['table_name', ''],
  36. ]);
  37. $query = $this->logic->search($where);
  38. $data = $this->logic->getList($query);
  39. return $this->success($data);
  40. }
  41. /**
  42. * 装载数据表
  43. * @param Request $request
  44. * @return Response
  45. */
  46. public function loadTable(Request $request): Response
  47. {
  48. $names = $request->input('names', []);
  49. $source = $request->input('source', '');
  50. $this->logic->loadTable($names, $source);
  51. return $this->success('操作成功');
  52. }
  53. /**
  54. * 同步数据表字段信息
  55. * @param Request $request
  56. * @return Response
  57. */
  58. public function sync(Request $request): Response
  59. {
  60. $id = $request->input('id', '');
  61. $this->logic->sync($id);
  62. return $this->success('操作成功');
  63. }
  64. /**
  65. * 代码预览
  66. */
  67. public function preview(Request $request): Response
  68. {
  69. $id = $request->input('id', '');
  70. $data = $this->logic->preview($id);
  71. return $this->success($data);
  72. }
  73. /**
  74. * 代码生成
  75. */
  76. public function generate(Request $request): Response
  77. {
  78. $ids = $request->input('ids', '');
  79. $data = $this->logic->generate($ids);
  80. return response()->download($data['download'], $data['filename']);
  81. }
  82. /**
  83. * 生成到模块
  84. */
  85. public function generateFile(Request $request): Response
  86. {
  87. $id = $request->input('id', '');
  88. $this->logic->generateFile($id);
  89. return $this->success('操作成功');
  90. }
  91. /**
  92. * 获取数据表字段信息
  93. * @param Request $request
  94. * @return Response
  95. */
  96. public function getTableColumns(Request $request): Response
  97. {
  98. $table_id = $request->input('table_id', '');
  99. $data = $this->logic->getTableColumns($table_id);
  100. return $this->success($data);
  101. }
  102. }