Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 66f80ff

Browse files
committed
建立复杂的自动化代码编写
1 parent 26044fa commit 66f80ff

File tree

29 files changed

+1510
-91
lines changed

29 files changed

+1510
-91
lines changed

‎api/app/Http/Controllers/Admin/TableConfigController.php

Lines changed: 400 additions & 0 deletions
Large diffs are not rendered by default.

‎api/app/Http/Controllers/Admin/TableController.php

Lines changed: 106 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -243,11 +243,112 @@ public function download()
243243
// 处理后端控制器数据
244244
$code = $this->createCodeBySnippet($snippet->back_api, $config);
245245
$code = str_replace("##fillable##", $fillable, $code);
246+
$format = "\$this->model::paginate(\$pageSize)";
247+
$value = '';
248+
foreach ($tableConfig as $v) {
249+
if ($v->query_type) {
250+
$title = ucfirst($v->column_name);
251+
$content = <<<STR
252+
$title()->
253+
STR;
254+
$value = $value . $content;
255+
}
256+
}
257+
$value = "\$this->model::".trim($value)."paginate(\$pageSize)";
258+
$code = str_replace($format, $value, $code);
246259
$fileName = $config['back_model'] . 'Controller.php';
247260
$path = 'api/app/Http/Controllers/Admin';
248261
file_put_contents(public_path('code/' . $tableName . '/' . $path) . "/$fileName", $code);
249262
// 后端模型
250263
$code = $this->createCodeBySnippet($snippet->back_model, $config);
264+
// 模型中的条件
265+
$format = "##scopeItem##";
266+
$value = '';
267+
foreach ($tableConfig as $v) {
268+
if ($v->query_type) {
269+
switch ($v->query_type) {
270+
case "=":
271+
$title = ucfirst($v->column_name);
272+
$content = <<<STR
273+
public function scope$title(\$query)
274+
{
275+
\$params = request()->input('$v->column_name');
276+
if (\$params) {
277+
return \$query = \$query->where('$v->column_name', \$params);
278+
} else {
279+
return \$query;
280+
}
281+
}
282+
283+
STR;
284+
break;
285+
case "like":
286+
$title = ucfirst($v->column_name);
287+
$content = <<<STR
288+
public function scope$title(\$query)
289+
{
290+
\$params = request()->input('$v->column_name');
291+
if (\$params) {
292+
return \$query = \$query->where('$v->column_name', 'like', "%".\$params."%");
293+
} else {
294+
return \$query;
295+
}
296+
}
297+
298+
STR;
299+
300+
break;
301+
case "<>":
302+
$title = ucfirst($v->column_name);
303+
$content = <<<STR
304+
public function scope$title(\$query)
305+
{
306+
\$params = request()->input('$v->column_name');
307+
if (\$params) {
308+
return \$query = \$query->where('$v->column_name', '<>', \$params);
309+
} else {
310+
return \$query;
311+
}
312+
}
313+
314+
STR;
315+
break;
316+
case "null":
317+
$title = ucfirst($v->column_name);
318+
$content = <<<STR
319+
public function scope$title(\$query)
320+
{
321+
\$params = request()->input('$v->column_name');
322+
if (\$params) {
323+
return \$query = \$query->whereNull('$v->column_name');
324+
} else {
325+
return \$query;
326+
}
327+
}
328+
329+
STR;
330+
break;
331+
case "notnull":
332+
$title = ucfirst($v->column_name);
333+
$content = <<<STR
334+
public function scope$title(\$query)
335+
{
336+
\$params = request()->input('$v->column_name');
337+
if (\$params) {
338+
return \$query = \$query->whereNotNull('$v->column_name');
339+
} else {
340+
return \$query;
341+
}
342+
}
343+
344+
STR;
345+
break;
346+
}
347+
$value = $value . $content;
348+
}
349+
}
350+
$code = str_replace($format, $value, $code);
351+
251352
$fileName = $config['back_model'] . '.php';
252353
$path = 'api/app/Models';
253354
file_put_contents(public_path('code/' . $tableName . '/' . $path) . "/$fileName", $code);
@@ -397,7 +498,7 @@ public function download()
397498
</el-col>
398499
STR;
399500
break;
400-
case "datetime":
501+
case "datetime":
401502
$content = <<<STR
402503
<el-col :span="12">
403504
<el-form-item label="$v->column_comment" prop="$v->column_name">
@@ -434,7 +535,7 @@ public function download()
434535
$value = '';
435536
foreach ($tableConfig as $v) {
436537
if ($v->query_type) {
437-
switch ($v->form_type){
538+
switch ($v->form_type){
438539
case 'datetime':
439540
$content = <<<STR
440541
<el-form-item label="$v->column_comment">
@@ -450,7 +551,7 @@ public function download()
450551
451552
STR;
452553
break;
453-
case 'date':
554+
case 'date':
454555
$content = <<<STR
455556
<el-form-item label="$v->column_comment">
456557
<el-date-picker
@@ -467,7 +568,7 @@ public function download()
467568
break;
468569
case 'select':
469570
case 'radio':
470-
$content = <<<STR
571+
$content = <<<STR
471572
<el-form-item label="$v->column_comment">
472573
<el-select v-model="searchForm.$v->column_name" placeholder="请选择$v->column_comment">
473574
<el-option :value="true" :label="是"></el-option>
@@ -478,23 +579,19 @@ public function download()
478579
STR;
479580
break;
480581
default:
481-
$content = <<<STR
582+
$content = <<<STR
482583
<el-form-item label="$v->column_comment">
483584
<el-input v-model="searchForm.$v->column_name" placeholder="请输入$v->column_comment">
484585
</el-input>
485586
</el-form-item>
486587
487588
STR;
488-
489589
}
490-
491-
492590
$value = $value . $content;
493591
}
494592
}
495593
$code = str_replace($format, $value, $code);
496594

497-
498595
$fileName = 'index.vue';
499596
$path = "element/src/views/" . $config['front_model'];
500597
$file = public_path('code/' . $tableName . '/' . $path) . "/$fileName";

‎api/app/Http/Controllers/Admin/WechatController.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
<?php
22

3+
34
namespace App\Http\Controllers\Admin;
45

5-
use App\Models\Wechat;
6-
use Illuminate\Http\Request;
76
use Illuminate\Support\Facades\DB;
87
use Rap2hpoutre\FastExcel\FastExcel;
98
use Illuminate\Support\Facades\Validator;
9+
use Illuminate\Validation\Rule;
10+
use Illuminate\Http\Request;
1011

1112
class WechatController extends Controller
1213
{
1314
use Tool;
1415
protected $model = 'App\Models\Wechat'; // 当前模型
15-
protected $fillable = []; // 当前模型可以修改和新增的字段
16+
protected $fillable = ['app_id', 'app_secret', 'type', 'status']; // 当前模型可以修改和新增的字段
1617
protected $resource = 'App\Http\Resources\Wechat'; // 显示个体资源
1718
protected $resourceCollection = 'App\Http\Resources\WechatCollection'; // 显示资源集合
1819
protected $map = []; // 导入导出时候 数据表字段与说明的映射表
@@ -27,7 +28,7 @@ public function index(Request $request)
2728

2829
protected function getListData($pageSize){
2930
// 当前列表数据 对应于原来的index
30-
$data = $this->model::paginate($pageSize);
31+
$data = $this->model::App_id()->App_secret()->paginate($pageSize);
3132
return new $this->resourceCollection($data);
3233
}
3334

@@ -277,8 +278,8 @@ protected function UpdateRule($id){
277278
}
278279

279280

280-
// protected function message(){
281-
// return [];
282-
// }
281+
protected function message(){
282+
return [];
283+
}
283284

284-
}
285+
}

‎api/app/Http/Resources/TableConfig.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
3+
namespace App\Http\Resources;
4+
5+
use Illuminate\Http\Resources\Json\JsonResource;
6+
7+
class TableConfig extends JsonResource
8+
{
9+
/**
10+
* Transform the resource into an array.
11+
*
12+
* @param \Illuminate\Http\Request $request
13+
* @return array
14+
*/
15+
public function toArray($request)
16+
{
17+
// $data = parent::toArray($request);
18+
// $data = [
19+
// 'id' => $this->id?:0,
20+
// 'table_name' => $this->table_name,
21+
// 'column_name' => $this->column_name,
22+
// 'data_type' => $this->data_type,
23+
// 'column_comment' => $this->column_comment,
24+
// 'is_required' => is_bool($this->is_required)?$this->is_required:false,
25+
//
26+
// ];
27+
28+
// 数据转换
29+
$data = parent::toArray($request);
30+
return $data;
31+
}
32+
33+
public function with($request)
34+
{
35+
return [
36+
'status' => 'success',
37+
'status_code' => 200
38+
];
39+
}
40+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace App\Http\Resources;
4+
5+
use Illuminate\Http\Resources\Json\ResourceCollection;
6+
7+
class TableConfigCollection extends ResourceCollection
8+
{
9+
/**
10+
* Transform the resource collection into an array.
11+
*
12+
* @param \Illuminate\Http\Request $request
13+
* @return array
14+
*/
15+
public function toArray($request)
16+
{
17+
return [
18+
'data' => $this->collection,
19+
'status' => 'success',
20+
'status_code' => 200
21+
];
22+
}
23+
}

‎api/app/Http/Resources/Template.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ class ##name## extends JsonResource
1515
public function toArray($request)
1616
{
1717
$data = parent::toArray($request);
18-
$data['created_at'] = $data['created_at'] * 1000;
19-
$data['updated_at'] = $data['updated_at'] * 1000;
2018
// 数据转换
2119

2220
return $data;

‎api/app/Http/Resources/Wechat.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,17 @@ class Wechat extends JsonResource
1515
public function toArray($request)
1616
{
1717
$data = parent::toArray($request);
18+
19+
// 数据转换
20+
1821
return $data;
1922
}
2023

2124
public function with($request)
2225
{
2326
return [
24-
'status' => 'success',
25-
'status_code' => 200
27+
'status' => 'success',
28+
'status_code' => 200
2629
];
2730
}
28-
}
31+
}

‎api/app/Http/Resources/WechatCollection.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ class WechatCollection extends ResourceCollection
1515
public function toArray($request)
1616
{
1717
return [
18-
'data' => $this->collection,
19-
'status' => 'success',
20-
'status_code' => 200
18+
'data' => $this->collection,
19+
'status' => 'success',
20+
'status_code' => 200
2121
];
2222
}
2323
}

‎api/app/Models/TableConfig.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace App\Models;
4+
5+
use Illuminate\Database\Eloquent\Model;
6+
7+
class TableConfig extends Model
8+
{
9+
//
10+
protected $dateFormat = "Y-m-d H:i:s";
11+
protected $casts = [
12+
'is_required' => 'boolean',
13+
'is_list' => 'boolean',
14+
'is_form' => 'boolean',
15+
];
16+
17+
protected $guarded = [];
18+
19+
20+
}

‎api/app/Models/Template.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77
class ##name## extends Model
88
{
99
//
10-
protected $casts =[
11-
'created_at' => 'timestamp',
12-
'updated_at' => 'timestamp'
13-
];
14-
10+
protected $dateFormat = "Y-m-d H:i:s";
1511
protected $guarded = [];
1612

1713

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /