@PostMapping("register") public Map<String, Object> signUp(@RequestBody User user) { // 查询用户 Map<String, String> query = new HashMap<>(); query.put("username",user.getUsername()); List list = service.select(query, new HashMap<>()).getResultList(); if (list.size()>0){ return error(30000, "用户已存在"); } user.setUserId(null); user.setPassword(service.encryption(user.getPassword())); service.save(user); return success(1); }
时间: 2024-02-29 13:55:19 浏览: 63
这是一个使用 Spring Boot 框架的注册接口,使用了 @PostMapping 注解表示这是一个处理 POST 请求的方法。@RequestBody 注解表示接收一个 JSON 格式的请求体,并将其转化为 User 对象。方法内部首先根据用户名查询用户是否存在,如果存在则返回错误信息。如果用户不存在,则将密码进行加密后保存到数据库中,并返回成功的信息。其中,error 和 success 方法用于返回统一的错误和成功信息。
相关问题
// 注册 @ResponseBody @RequestMapping("/register") public Map<String, Object> register(@RequestBody User user){ ResponseBean responseBean = new ResponseBean(); User u = userService.selectOne(user); if (u == null) { userService.insertSelective(user); } else { responseBean.putError("注册失败,该用户名已注册"); } return responseBean.getResponseMap(); } // 登录 @ResponseBody @RequestMapping("/login") public Map<String, Object> login(@RequestBody User user, HttpSession session){ ResponseBean responseBean = new ResponseBean(); User u = userService.selectOne(user); if (u == null) { responseBean.putError("用户名/密码错误"); } else { if (!u.getPassword().equals(user.getPassword())) { responseBean.putError("用户名/密码错误"); } else { responseBean.putData("data", u); session.setAttribute(WebConstant.SESSION_KEY_USER, u); } } return responseBean.getResponseMap(); }
这是一个使用 Spring MVC 框架编写的用户注册和登录的 RESTful API 接口。其中,@ResponseBody 注解表示该方法返回的是 JSON 数据,@RequestMapping 注解则指定了该方法对应的 URL 地址。
在 register 方法中,@RequestBody 注解表示该方法接收的参数为一个 User 对象,该方法会将该对象插入到数据库中。如果该用户名已被注册,则返回一个包含错误信息的 ResponseBean 对象。
在 login 方法中,也是通过 @RequestBody 注解来接收用户提交的参数。如果该用户名不存在或密码不正确,则返回一个包含错误信息的 ResponseBean 对象。否则,该方法会将该用户对象存储到 HttpSession 中,表示该用户已登录。
/** * 注册 * @param user * @return / @PostMapping("register") public Map<String, Object> signUp(@RequestBody User user) { // 查询用户 Map<String, String> query = new HashMap<>(); query.put("username",user.getUsername()); List list = service.select(query, new HashMap<>()).getResultList(); if (list.size()>0){ return error(30000, "用户已存在"); } user.setUserId(null); user.setPassword(service.encryption(user.getPassword())); service.save(user); return success(1); } /* * 用户ID:[0,8388607]用户获取其他与用户相关的数据 / @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id") private Integer userId; /* * 账户状态:0,10 / @Basic @Column(name = "state") private Integer state; /* * 所在用户组:[0,32767]决定用户身份和权限 / @Basic @Column(name = "user_group") private String userGroup; /* * 上次登录时间: / @Basic @Column(name = "login_time") private Timestamp loginTime; /* * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 / @Basic @Column(name = "phone") private String phone; /* * 手机认证:0,1 / @Basic @Column(name = "phone_state") private Integer phoneState; /* * 用户名:[0,16]用户登录时所用的账户名称 / @Basic @Column(name = "username") private String username; /* * 昵称:[0,16] / @Basic @Column(name = "nickname") private String nickname; /* * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 / @Basic @Column(name = "password") private String password; /* * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 / @Basic @Column(name = "email") private String email; /* * 邮箱认证:0,1 / @Basic @Column(name = "email_state") private Integer emailState; /* * 头像地址:[0,255] / @Basic @Column(name = "avatar") private String avatar; /* * 创建时间: */ @Basic @Column(name = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Timestamp createTime; @Basic @Transient private String code; }
这是一段 Java 代码,使用了 Spring 框架中的 `@PostMapping` 注解实现了一个注册的接口,接收一个用户对象 `User` 作为参数。
具体来说,这个接口会接收一个 HTTP POST 请求,请求路径为 "/register",请求体为一个 JSON 格式的用户对象,即 `@RequestBody User user`,其中 `User` 是一个实体类,包含了用户的各种信息,如用户名、密码、邮箱等。
接口的主要功能是先查询数据库中是否已经存在同样用户名的用户,如果存在则返回错误信息,否则将用户信息加密后保存到数据库中,并返回成功信息。具体的查询和保存操作使用了一个名为 `service` 的服务类,该服务类的具体实现不在这段代码中给出。
用户实体类 `User` 包含了用户的各种信息,如用户ID、账户状态、所在用户组、手机号码、密码、邮箱等。其中,`@Id` 注解表示该字段是主键,`@GeneratedValue` 注解表示主键自动生成,`@Column` 注解表示该字段对应数据库中的列名。`@Basic` 注解表示该字段是基本属性,`@Transient` 注解表示该字段不需要持久化到数据库中。
最后,还使用了 `@JsonFormat` 注解,该注解使用了一个日期格式 "yyyy-MM-dd HH:mm:ss",表示在将 `create_time` 字段转换为 JSON 格式时,使用指定的日期格式进行格式化。
阅读全文