写在前面
上一篇文章我们进行了业务层开发-用户注册异常,这篇文章我们进行用户注册-业务层接口和实体类开发
用户注册-业务层接口开发
在service目录下新建一个IUserService接口,代码如下:
package com.cy.store.service;
import com.cy.store.entity.User;
/** 用户模块业务层接口 */
public interface IUserService {
/**
* 用户注册
* @param user 用户信息
*/
void reg(User user);
}
用户注册-业务层实体类开发
在impl目录下新建一个UserServiceImpl类,代码如下:
业务逻辑如下:首先通过userMapper.findByUsername()查询用户名是否存在,如果存在就抛出“用户名已存在”的异常,如果不存在就往数据库插入用户信息,此时先将用户信息补全,设置isDelete为0,createUser和modifiedUser为传过来的user的username,createdTime和modifiedTime是当前的date,最后如果rows不为1,说明插入数据库失败,就抛出数据库插入异常-“注册失败”
@Service 是必不可少的,没有它Spring找不到
package com.cy.store.service.impl;
import com.cy.store.entity.User;
import com.cy.store.mapper.UserMapper;
import com.cy.store.service.IUserService;
import com.cy.store.service.ex.UsernameDuplicatedException;
import com.cy.store.service.ex.InsertException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/** 用户模块业务层实现类 */
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
public void reg(User user) {
String username = user.getUsername();
User result = userMapper.findByUsername(username);
if (result != null){
/** 抛出用户名已存在异常 */
throw new UsernameDuplicatedException("用户名已存在");
}
user.setIsDelete(0);
user.setCreatedUser(username);
user.setModifiedUser(username);
Date date = new Date();
user.setCreatedTime(date);
user.setModifiedTime(date);
Integer rows = userMapper.insert(user);
if (rows != 1) {
throw new InsertException("注册失败,请重试");
}
}
}
写在最后
以上就是用户注册-业务层接口和实体类开发的全部内容