阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service

判断用户名是否存在接口就写完了
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第1张图片
接下来去写注册,用于创建用户的接口。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第2张图片

service

返回创建完成的用户

前端表单提交的是用户名、密码、和确认密码。包装到一个jsonObject传递到后端。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第3张图片
传到后端以后,它其实属于一种偏向于业务类型的数据包。我们可以统一的定义为BO(Business Object 业务对象)对象,我们定义为UserBO。
我们可以这样去理解,只要是前端传入到后端用于去接收的数据体的话,不管是List还是Object,我们都可以统一的定义为XXXBO。比方这里定义为userBO,以后的话像购物车可以定义为ShoppingCartBO,OrderBO
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第4张图片

创建BO

bo统一的放在pojo的工程下。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第5张图片

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第6张图片
创建UserBO
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第7张图片
在这里面填入一些我们前端传入过来的一些属性。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第8张图片
定义三个属性,然后生成getter和setter
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第9张图片

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第10张图片

回到Service层

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第11张图片

service实现类。
实现方法,先加上事务,事务用的是Required
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第12张图片
创建新对象,然后 从userBO里面获取值。密码需要加密。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第13张图片

预先引入的MD5的工具类
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第14张图片

先通过md5加密,然后用Base64进行了encode
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第15张图片
这里可以来做一个测试,把这里改成imooc
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第16张图片
然后运行main方法。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第17张图片
输出加密后的密文

通过getMD5Str这个方法对明文的密码进行加密。这里红线是需要抛出异常。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第18张图片
加try catch
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第19张图片

try catch包起来这样就可以了
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第20张图片

提供的默认头像。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第21张图片

在最上面定义一个final的变量。因为是stati final修饰的,所以变量名都是大写的。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第22张图片
改成private也是可以的
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第23张图片
设置默认的头像
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第24张图片
生日一般设置为1900-01-01。这里就涉及到一个时间日期的转换类。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第25张图片

DateUtil时间日期的工具类。用于处理基本的时间日期的
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第26张图片
使用转换的方法。字符串转日期类型。

性别

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第27张图片
在之前设置一个2就是保密的。但是不推荐去这么写,直接写死不推荐。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第28张图片
所以这里我们会使用一个枚举。
创建枚举的包,enum因为是一个关键字所以不推荐使用为包名。后面加个s叫做enums
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第29张图片

我们在后面加上一个s就可以了
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第30张图片

创建一个class类然后把class改为enum枚举类。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第31张图片

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第32张图片
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第33张图片

0 ->女 这种形式  可以理解为键值对
生成构造函数。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第34张图片

生成一个全参的构造函数
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第35张图片
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第36张图片
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第37张图片
Sex.secret.type

创建时间和修改时间

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第38张图片

用户的主键

全局唯一化。已经把组件预先的引用了进来。就是下面三个包
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第39张图片

这里有个sid,其实就是工具类。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第40张图片
这就是会使用到的id生成器。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第41张图片

注入Sid
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第42张图片
这三个包包是org.n3r.idworker。要想注入进来。就必须包能被容器扫描到。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第43张图片
右键复制包的路径
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第44张图片
在API工程的启动类里面。用@ComponentScan扫描com.imooc和 org.n3r.idworker这两个包下。默认已经扫描了com.imooc这个包 ,但是这里要加上org.n3r.idworker所以
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第45张图片

默认已经扫描了 com.imooc包,但是这里为了加上org.n3r的包。 要用上@ComponentScan的扫描 所以这里也要把com.imooc这个 一起加上。这里是一个数组的形式。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第46张图片



这样sid就已经注入进来,可以用了。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第47张图片
获取到id,然后设置id
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第48张图片
可以把这个main方法放开注释。,然后测试下生成的id
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第49张图片
一个用的是nextShort一个用的是next
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第50张图片
右键来运行。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第51张图片
short就是短id。下面的是长id
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第52张图片
测试完,把注释恢复。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第53张图片
保存对象,并返回。user对象返回去,主要用于在页面里面显示一些基本信息。
阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service_第54张图片


以上创建用户保存的service就算是完成了。
 

结束

 

你可能感兴趣的:(阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service)