Browse Source

feat:创建客户端家长登入以及发生短信接口

sakura 1 năm trước cách đây
mục cha
commit
7bc5be1b02

+ 40 - 0
school-in-out-admin/src/main/java/com/schoolinout/web/controller/api/Api_ParentController.java

@@ -0,0 +1,40 @@
+package com.schoolinout.web.controller.api;
+
+import com.schoolinout.common.core.domain.AjaxResult;
+import com.schoolinout.system.domain.dto.ApiParentLoginDto;
+import com.schoolinout.system.service.IApiParentService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author sakura
+ * @date 2024/1/9 17:17:17 Tue
+ */
+@Tag(name = "用户端-家长接口")
+@RequestMapping("/app/parent")
+@RestController
+public class Api_ParentController {
+
+    @Autowired
+    private IApiParentService parentService;
+
+    @Operation(summary = "家长登入")
+    @PostMapping("/login")
+    public AjaxResult parentLogin(@Validated @RequestBody ApiParentLoginDto form) {
+        // step1:校验验证码是否正确
+        // step2:通过手机号去查询家长
+        // step3:通过学号去查询学生
+        // step4:返回登入成功的令牌
+        return AjaxResult.success();
+    }
+
+    @Operation(summary = "发送手机号验证码")
+    @PostMapping("/send/phone/code/{phone}")
+    public AjaxResult sendPhoneCode(@PathVariable String phone) {
+        // 发生验证码
+        return AjaxResult.success();
+    }
+}

+ 12 - 2
school-in-out-admin/src/main/java/com/schoolinout/web/core/config/SwaggerKnife4jConfig.java

@@ -60,6 +60,17 @@ public class SwaggerKnife4jConfig {
                 .build();
     }
 
+    @Bean(value = "customerApi")
+    public GroupedOpenApi customerApi() {
+        return GroupedOpenApi.builder()
+                .group("客户端接口文档")
+                .packagesToScan("com.schoolinout.web.controller.api")
+                .addOpenApiCustomiser(orderGlobalOpenApiCustomizer())
+                // 设置读取那些标识的接口
+                .addOpenApiMethodFilter(method -> method.isAnnotationPresent(Operation.class))
+                .build();
+    }
+
 
     @Bean
     public OpenAPI customOpenAPI() {
@@ -73,8 +84,7 @@ public class SwaggerKnife4jConfig {
                                 .url("#"))
                 ).addSecurityItem(new SecurityRequirement().addList(HttpHeaders.AUTHORIZATION))
                 .components(new Components().addSecuritySchemes(HttpHeaders.AUTHORIZATION, new SecurityScheme()
-                        .name(HttpHeaders.AUTHORIZATION).type(SecurityScheme.Type.HTTP)));
-        // .name(HttpHeaders.AUTHORIZATION)).type(SecurityScheme.Type.HTTP).scheme("bearer")
+                        .name(HttpHeaders.AUTHORIZATION).type(SecurityScheme.Type.HTTP).scheme("bearer")));
     }
 
 

+ 2 - 0
school-in-out-framework/src/main/java/com/schoolinout/framework/config/SecurityConfig.java

@@ -109,6 +109,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
                 .authorizeRequests()
                 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
                 .antMatchers("/login", "/register", "/captchaImage").permitAll()
+                // 客户端登入放行路径
+                .antMatchers("/api/parent/login/**", "/api/parent/send/phone/code/**").permitAll()
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**", "/doc.html", "/v3/api-docs/**").permitAll()

+ 46 - 0
school-in-out-system/src/main/java/com/schoolinout/system/domain/dto/ApiParentLoginDto.java

@@ -0,0 +1,46 @@
+package com.schoolinout.system.domain.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author sakura
+ * @date 2024/1/9 17:17:19 Tue
+ */
+@Schema(name = "用户端家长登入实体")
+public class ApiParentLoginDto {
+    @Schema(description = "电话", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "手机号不能为空")
+    private String phone;
+    @Schema(description = "手机号验证码", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "手机号验证码不能为空")
+    private String code;
+    @Schema(description = "学号", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "学号不能为空")
+    private String studentNum;
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(String studentNum) {
+        this.studentNum = studentNum;
+    }
+}

+ 8 - 0
school-in-out-system/src/main/java/com/schoolinout/system/service/IApiParentService.java

@@ -0,0 +1,8 @@
+package com.schoolinout.system.service;
+
+/**
+ * @author sakura
+ * @date 2024/1/9 17:17:18 Tue
+ */
+public interface IApiParentService {
+}

+ 12 - 0
school-in-out-system/src/main/java/com/schoolinout/system/service/impl/ApiParentServiceImpl.java

@@ -0,0 +1,12 @@
+package com.schoolinout.system.service.impl;
+
+import com.schoolinout.system.service.IApiParentService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author sakura
+ * @date 2024/1/9 17:17:18 Tue
+ */
+@Service
+public class ApiParentServiceImpl implements IApiParentService {
+}