1
0
mirror of https://gitee.com/coder-xiaomo/flashsale synced 2025-09-12 15:01:39 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee

otp验证码获取

This commit is contained in:
2022-03-01 18:59:29 +08:00
parent 897f69970a
commit f52fa51895
2 changed files with 60 additions and 20 deletions

View File

@@ -14,6 +14,19 @@
### 本次修改通过以下方式查看👇 ### 本次修改通过以下方式查看👇
> http://localhost:8090/user/getotp?telephone=1
预期效果:
```json
{"data":null,"status":"success"}
```
控制台:
```sql
telephone = 1 & otpCode = 90824
```
> http://localhost:8090/user/get?id=2 > http://localhost:8090/user/get?id=2
预期效果: 预期效果:
@@ -21,27 +34,30 @@
```json ```json
{"data":{"errCode":10002,"errMsg":"未知错误"},"status":"fail"} {"data":{"errCode":10002,"errMsg":"未知错误"},"status":"fail"}
``` ```
### 层次结构以User为例自上向下 ### 层次结构以User为例自上向下
| | 目录 | Java对象类型 | 说明 | 举例 | | | 目录 | Java对象类型 | 说明 | 举例 |
| ----------------------------- | --------------------- | ----------------- | ---------------------------------------- | ---------------------------- | |-------------------|-----------------------|---------------------------------|-------------------------------|------------------------------|
| **<nobr>Controller层</nobr>** | | | | | | **Controller层** | | | | |
| Controller | controller | 类 class | | controller.UserController | | Controller | controller | 类 class | | controller.UserController |
| View Object | controller/viewobject | 类 class | 将用户Model转化为可供UI使用的View Object | controller.UserController | | View Object | controller/viewobject | 类 class | 将用户Model转化为可供UI使用的View Object | controller.UserController |
| | | | | | | | | | | |
| **<nobr>Service层</nobr>** | 转换成业务模型 | | | | | **Service层** | 转换成业务模型 | | | |
| Service | service | 接口 interface | | service.UserService | | Service | service | 接口 interface | | service.UserService |
| ServiceImpl | service/impl | Service接口实现类 | 将DataObject组装成Model | service.impl.UserServiceImpl | | ServiceImpl | service/impl | Service接口实现类 | 将DataObject组装成Model | service.impl.UserServiceImpl |
| Model | service/model | 类 class | 用户模型Model | service.model.UserModel | | Model | service/model | 类 class | 用户模型Model | service.model.UserModel |
| | | | | | | | | | | |
| **<nobr>Dao层</nobr>** | 对数据库的映射 | | | | | **Dao层** | 对数据库的映射 | | | |
| Mapper | dao | 接口 interface | | dao.UserDOMapper | | Mapper | dao | 接口 interface | | dao.UserDOMapper |
| Mapping | resources/mapping | Mapper接口实现类 | xml格式SQL语句 | mapping/UserDOMapper.xml | | Mapping | resources/mapping | Mapper接口实现类 | xml格式SQL语句 | mapping/UserDOMapper.xml |
| Data Object | dataobject | 类 class | | dataobject.UserDO | | Data Object | dataobject | 类 class | | dataobject.UserDO |
| | | | | |
| **其他** | | | | |
| response | response | | 用于处理HTTP请求返回 | response.CommonReturnType |
| | | | | |
| **异常处理** | 用于返回错误信息 | | | |
| CommonError | error | 接口 interface | | error.CommonError |
| EmBusinessError | error | 枚举 enum & CommonError接口实现类 | | error.EmBusinessError |
| BusinessException | error | CommonError接口实现类 & 继承自Exception | | error.BusinessException |
**Tips:** Model与Data Object并非完全一一对应例如UserModel是由ServiceImpl将UserDO和UserPasswordDO组装而成的。 **Tips:** Model与Data Object并非完全一一对应例如UserModel是由ServiceImpl将UserDO和UserPasswordDO组装而成的。
response: 用于处理HTTP请求返回
error: 用于返回错误信息

View File

@@ -10,6 +10,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Random;
@Controller("user") // 允许被SpringBoot扫描到 @Controller("user") // 允许被SpringBoot扫描到
@RequestMapping("/user") // 通过 "/user" 访问到 @RequestMapping("/user") // 通过 "/user" 访问到
@@ -18,6 +21,27 @@ public class UserController extends BaseController {
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired
private HttpServletRequest httpServletRequest;
// 用户获取OTP短信接口
@RequestMapping("/getotp")
@ResponseBody
public CommonReturnType getOtp(@RequestParam(name = "telephone") String telephone) {
// 需要按照一定的规则生成OTP验证码
Random random = new Random();
int randomInt = random.nextInt(99999);// [0,99999)
String otpCode = String.format("%05d", randomInt);
// 将OTP验证码同对应用户的手机号关联 使用
httpServletRequest.getSession().setAttribute(telephone, otpCode);
// 将OTP验证码通过短信通道发送给用户
System.out.println("telephone = " + telephone + " & otpCode = " + otpCode);
return CommonReturnType.create(null);
}
@RequestMapping("/get") @RequestMapping("/get")
@ResponseBody @ResponseBody
public CommonReturnType getUser(@RequestParam(name = "id") Integer id) throws BusinessException { public CommonReturnType getUser(@RequestParam(name = "id") Integer id) throws BusinessException {