diff --git a/README.md b/README.md
index 3a7343c..21505c8 100644
--- a/README.md
+++ b/README.md
@@ -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
预期效果:
@@ -21,27 +34,30 @@
```json
{"data":{"errCode":10002,"errMsg":"未知错误"},"status":"fail"}
```
-
### 层次结构(以User为例,自上向下)
-| | 目录 | Java对象类型 | 说明 | 举例 |
-| ----------------------------- | --------------------- | ----------------- | ---------------------------------------- | ---------------------------- |
-| **Controller层** | | | | |
-| Controller | controller | 类 class | | controller.UserController |
-| View Object | controller/viewobject | 类 class | 将用户Model转化为可供UI使用的View Object | controller.UserController |
-| | | | | |
-| **Service层** | 转换成业务模型 | | | |
-| Service | service | 接口 interface | | service.UserService |
-| ServiceImpl | service/impl | Service接口实现类 | 将DataObject组装成Model | service.impl.UserServiceImpl |
-| Model | service/model | 类 class | 用户模型Model | service.model.UserModel |
-| | | | | |
-| **Dao层** | 对数据库的映射 | | | |
-| Mapper | dao | 接口 interface | | dao.UserDOMapper |
-| Mapping | resources/mapping | Mapper接口实现类 | xml格式;SQL语句 | mapping/UserDOMapper.xml |
-| Data Object | dataobject | 类 class | | dataobject.UserDO |
+| | 目录 | Java对象类型 | 说明 | 举例 |
+|-------------------|-----------------------|---------------------------------|-------------------------------|------------------------------|
+| **Controller层** | | | | |
+| Controller | controller | 类 class | | controller.UserController |
+| View Object | controller/viewobject | 类 class | 将用户Model转化为可供UI使用的View Object | controller.UserController |
+| | | | | |
+| **Service层** | 转换成业务模型 | | | |
+| Service | service | 接口 interface | | service.UserService |
+| ServiceImpl | service/impl | Service接口实现类 | 将DataObject组装成Model | service.impl.UserServiceImpl |
+| Model | service/model | 类 class | 用户模型Model | service.model.UserModel |
+| | | | | |
+| **Dao层** | 对数据库的映射 | | | |
+| Mapper | dao | 接口 interface | | dao.UserDOMapper |
+| Mapping | resources/mapping | Mapper接口实现类 | xml格式;SQL语句 | mapping/UserDOMapper.xml |
+| 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组装而成的。
-
-response: 用于处理HTTP请求返回
-
-error: 用于返回错误信息
\ No newline at end of file
diff --git a/src/main/java/com/cxyxiaomo/flashsale/controller/UserController.java b/src/main/java/com/cxyxiaomo/flashsale/controller/UserController.java
index b272648..461702d 100644
--- a/src/main/java/com/cxyxiaomo/flashsale/controller/UserController.java
+++ b/src/main/java/com/cxyxiaomo/flashsale/controller/UserController.java
@@ -10,6 +10,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Random;
+
@Controller("user") // 允许被SpringBoot扫描到
@RequestMapping("/user") // 通过 "/user" 访问到
@@ -18,6 +21,27 @@ public class UserController extends BaseController {
@Autowired
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")
@ResponseBody
public CommonReturnType getUser(@RequestParam(name = "id") Integer id) throws BusinessException {