Просмотр исходного кода

feat(property): 增加通过名称搜索属性的功能

- 在 PropertiesController 中添加 findByName 方法,用于根据名称查找属性
- 在路由中添加相应的 POST 接口 /pop/name
- 实现了请求验证和属性名称的精确匹配查询
wui 9 месяцев назад
Родитель
Сommit
f53a45c0c3
2 измененных файлов с 16 добавлено и 0 удалено
  1. 12 0
      app/Controllers/Http/PropertiesController.ts
  2. 4 0
      start/routes.ts

+ 12 - 0
app/Controllers/Http/PropertiesController.ts

@@ -6,6 +6,7 @@ import { Exception } from '@adonisjs/core/build/standalone'
 
 export default class PropertiesController {
     private paginationService = new PaginationService(Property)
+
     public async index({ request }: HttpContextContract) {
         return await this.paginationService.paginate(request.all())
     }
@@ -32,6 +33,17 @@ export default class PropertiesController {
         return await Property.findOrFail(params.id)
     }
 
+    public async findByName({ request }) {
+        console.log(request)
+        const data = await request.validate({
+            schema: schema.create({
+                name: schema.string()
+            })
+        })
+        console.log(data)
+        return await Property.findBy('name', data.name)
+    }
+
     public async update({ request, params, bouncer }: HttpContextContract) {
         await bouncer.authorize('admin')
         const data = await request.validate({

+ 4 - 0
start/routes.ts

@@ -110,6 +110,10 @@ Route.group(() => {
         Route.resource('ocrChannel', 'OcrChannelController').apiOnly()
     }).middleware('auth:api')
 
+    Route.group(() => {
+        Route.post('/name', 'PropertiesController.findByName')
+    }).prefix('/pop')
+
     Route.group(() => {
         Route.get('/', 'OcrRecordController.index').middleware('auth:api')
         Route.post('/detail', 'OcrRecordController.getAllAddresses').middleware('auth:api')