学习淘淘商城第八十五课(单点登录用户注册--Service层)

        首先我们还是看关于单点登录手册中关于注册的说明,如下图所示。请求方式是POST类型,URL为我们明确指定好了,参数有四个,需要校验完合法性之后再提交。


          下面我们先在taotao-sso-interface工程添加注册接口,如下图所示


          接口内容如下:

//注册
TaotaoResult register(TbUser tbUser);
          下面实现接口, UserServiceImpl.java类所有代码如下:

package com.taotao.sso.service.impl;

import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;

import com.taotao.common.pojo.TaotaoResult;
import com.taotao.mapper.TbUserMapper;
import com.taotao.pojo.TbUser;
import com.taotao.pojo.TbUserExample;
import com.taotao.pojo.TbUserExample.Criteria;
import com.taotao.sso.service.UserService;

@Service
public class UserServiceImpl implements UserService {
	@Autowired
	private TbUserMapper tbUserMapper;

	@Override
	public TaotaoResult checkUserData(String data, int type) {
		//设置查询条件
		TbUserExample example = new TbUserExample();
		Criteria criteria = example.createCriteria();
		//1.判断用户名是否可用
		if(type == 1){
			criteria.andUsernameEqualTo(data);
		} else if(type == 2){
			//2.判断电话是否可用
			criteria.andPhoneEqualTo(data);
		} else if(type == 3){
			//3.判断邮箱是否可用
			criteria.andEmailEqualTo(data);
		} else {
			return TaotaoResult.build(400, "所传参数非法!");
		}
		List<TbUser> list = tbUserMapper.selectByExample(example);
		if(list != null && list.size() > 0){
			return TaotaoResult.ok(false);
		} 
		
		return TaotaoResult.ok(true);
	}

	@Override
	public TaotaoResult register(TbUser tbUser) {
		//检查数据有效性
		if(StringUtils.isBlank(tbUser.getUsername())){
			return TaotaoResult.build(400, "用户名不能为空!");
		}
		TaotaoResult taotaoResult = checkUserData(tbUser.getUsername(), 1);
		if(!(Boolean)taotaoResult.getData()){
			return TaotaoResult.build(400, "用户名不能重复!");
		}
		if(StringUtils.isBlank(tbUser.getPassword())){
			return TaotaoResult.build(400, "密码不能为空!");
		}
		if(StringUtils.isNotBlank(tbUser.getPhone())){
			//如果电话不为空,那么接着判断是否重复,电话是不能重复的
			taotaoResult = checkUserData(tbUser.getPhone(), 2);
			if(!(Boolean)taotaoResult.getData()){
				return TaotaoResult.build(400, "电话不能重复!");
			}
		}
		if(StringUtils.isNotBlank(tbUser.getEmail())){
			//如果邮箱不为空,那么接着判断是否重复,邮箱也是不能重复的
			taotaoResult = checkUserData(tbUser.getEmail(), 3);
			if(!(Boolean)taotaoResult.getData()){
				return TaotaoResult.build(400, "邮箱不能重复!");
			}
		}
		//填充属性
		tbUser.setCreated(new Date());
		tbUser.setUpdated(new Date());
		//密码要进行Md5加密,我们不用添加额外的jar包,只需要使用Spring自带的包就可以了
		String md5Str = DigestUtils.md5DigestAsHex(tbUser.getPassword().getBytes());
		tbUser.setPassword(md5Str);
		//添加
		tbUserMapper.insert(tbUser);
		return TaotaoResult.ok();
	}

}
         
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值