淘淘商城——单点登录之用户注册

淘淘商城——单点登录之用户注册首先我们还是看关于单点登录接口文档中关于用户注册接口的说明 如下图所示 请求方式是 POST 类型 URL 为我们明确指定好了 参数有四个 需要校验完合法性之后再提交 以上接口文档写的还算明了 大家就凑合着看吧 由于用户注册只涉及到单表操作 因此我们使用逆向工程生成的 dao 层代码即可

大家好,我是讯享网,很高兴认识大家。

首先我们还是看关于单点登录接口文档中关于用户注册接口的说明,如下图所示。请求方式是POST类型,URL为我们明确指定好了,参数有四个,需要校验完合法性之后再提交。
这里写图片描述
讯享网
以上接口文档写的还算明了,大家就凑合着看吧!
由于用户注册只涉及到单表操作,因此我们使用逆向工程生成的dao层代码即可。
下面我们来编写Service层的代码。首先在taotao-sso-interface工程的UserRegisterService接口中添加一个用户注册的方法,如下图所示。
这里写图片描述
紧接着在taotao-sso-service工程的UserRegisterServiceImpl实现类中实现该用户注册方法。
这里写图片描述
为方便大家复制,现将UserRegisterServiceImpl实现类的代码贴出。

/ * 用户注册处理Service * <p>Title: UserRegisterServiceImpl</p> * <p>Description: </p> * <p>Company: www.itcast.cn</p> * @version 1.0 */ @Service public class UserRegisterServiceImpl implements UserRegisterService { 
    @Autowired private TbUserMapper userMapper; @Override public TaotaoResult checkUserInfo(String param, int type) { TbUserExample example = new TbUserExample(); Criteria criteria = example.createCriteria(); // 判断要校验的数据类型,来设置不同的查询条件 // 1、2、3分别代表username、phone、email if (type == 1) { criteria.andUsernameEqualTo(param); } else if (type == 2) { criteria.andPhoneEqualTo(param); } else if (type == 3) { criteria.andEmailEqualTo(param); } // 执行查询 List<TbUser> list = userMapper.selectByExample(example); if (list == null || list.size() == 0) { return TaotaoResult.ok(true); } return TaotaoResult.ok(false); } @Override public TaotaoResult createUser(TbUser user) { // 校验数据的合法性 if (StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword())) { return TaotaoResult.build(400, "用户名和密码不能为空"); } // 校验用户名是否重复 TaotaoResult taotaoResult = checkUserInfo(user.getUsername(), 1); boolean flag = (boolean) taotaoResult.getData(); if (!flag) { return TaotaoResult.build(400, "用户名重复"); } // 校验手机号是否重复 if (user.getPhone() != null) { // 注意:空串也算有值 taotaoResult = checkUserInfo(user.getPhone(), 2); if (!(boolean) taotaoResult.getData()) { return TaotaoResult.build(400, "手机号重复"); } } // 校验邮箱是否重复 if (user.getEmail() != null) { // 注意:空串也算有值 taotaoResult = checkUserInfo(user.getEmail(), 3); if (!(boolean) taotaoResult.getData()) { return TaotaoResult.build(400, "邮箱重复"); } } // 补全TbUser对象的属性 user.setCreated(new Date()); user.setUpdated(new Date()); // 把密码进行MD5加密 String md5Pass = DigestUtils.md5DigestAsHex(user.getPassword().getBytes()); user.setPassword(md5Pass); // 插入到数据库 userMapper.insert(user); // 返回结果 return TaotaoResult.ok(); } }

讯享网

至此Service层的代码便编写完毕!
下面我们接着来编写Controller层的代码。 在taotao-sso-web工程的UserController类中添加如下图所示标注的代码。
这里写图片描述
注意:GET请求不需要在RequestMapping注解中指定,但是POST就需要指定了。
Controller层代码编写好了之后,现在我们来测试下这个用户注册接口是否好使。由于我们修改过taotao-sso-interface和taotao-sso-service,因此我们需要重新把taotao-sso打包到本地Maven仓库。
下面我们启动taotao-sso工程以及taotao-sso-web工程,启动成功之后,我们使用一个测试工具来测试POST请求(浏览器地址栏是不能模拟POST请求的),POST请求是要带参数的,参数的名称必须与下图tb_user表中框住的四个字段一样。
这里写图片描述
这个测试工具是什么呢?其实我也是第一次使用,就是下图所示的这个jar包。
这里写图片描述
按道理来讲,双击它是可以运行的,但是如果你的电脑安装的是解压版的JDK,那么双击它是不能运行的,这时怎么办呢?方法总是有的,你可以创建一个批处理文件,例如start.bat,其内容为:

讯享网start java -jar restclient-ui-3.5-jar-with-dependencies.jar

创建完毕,双击该bat文件,即可看到如下图所示界面。
这里写图片描述
我们在URL一栏中输入http://localhost:8088/user/register,类型选择POST,如下图所示。
这里写图片描述
我们点击”Body”一栏,点击下拉框会出现下拉菜单让我们选择,我们选择”String body”。
这里写图片描述
选择”String body”后如下图所示,默认的content-type是”text/plain”,我们要把它改成表单类型。
这里写图片描述
我们按照如下图所示更改content-type类型。
这里写图片描述
下面我们添加参数,如下图所示,添加四个参数。
这里写图片描述
添加完之后,点击”Generate”,如下图所示。
这里写图片描述
下面发送请求,如下图所示,可以看到返回的提示是用户名重复了。
这里写图片描述
其实我们输入的四个参数的值都是在数据库表中存在的,除了密码,其它三个都会报不能重复的错误,要想不报错,我们要把用户名、电话、邮箱三个参数都修改下,改成数据库中不存在的数据,如下图所示。可以看到返回的状态码是200,说明成功了。
这里写图片描述
我们可以到数据库表中查看一下,发现数据库表中已经有新注册用户的信息了。
这里写图片描述

小讯
上一篇 2025-03-14 22:24
下一篇 2025-01-28 21:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12032.html