SysUserServiceImpl.java 2.07 KB
package com.bsth.service.sys.impl;

import com.bsth.common.ResponseCode;
import com.bsth.entity.sys.SysUser;
import com.bsth.repository.sys.SysUserRepository;
import com.bsth.service.impl.BaseServiceImpl;
import com.bsth.service.sys.SysUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

@Service
public class SysUserServiceImpl extends BaseServiceImpl<SysUser, Integer> implements SysUserService{

	@Autowired
	SysUserRepository sysUserRepository;

	Logger logger = LoggerFactory.getLogger(this.getClass());
	
	@Override
	public SysUser findByUserName(String name) {
		return sysUserRepository.findByUserName(name);
	}
	
	@Override
	public Map<String, Object> save(SysUser t) {
		// 
		if(t.getPassword() == null || t.getPassword().trim().equals("")){
			SysUser user = sysUserRepository.findOne(t.getId());
			t.setPassword(user.getPassword());
		}else{
			t.setPassword(new BCryptPasswordEncoder(4).encode(t.getPassword()));
		}
		return super.save(t);
	}

	@Override
	public int changeEnabled(int id, int enabled) {
		sysUserRepository.changeEnabled(id,enabled);
		return 0;
	}

	@Override
	public int changePWD(int id,String newPWD) {
		return sysUserRepository.changePWD(id,new BCryptPasswordEncoder(4).encode(newPWD));
	}

	@Override
	public Map<String, Object> register(SysUser u) {
		Map<String, Object> rs = new HashMap();
		try{
			//检查用户名是否存在
			if(findByUserName(u.getUserName()) != null){
				rs.put("status", ResponseCode.ERROR);
				rs.put("msg", "用户名" + u.getUserName() + "已存在!");
			}
			else{
				u.setPassword(new BCryptPasswordEncoder(4).encode(u.getPassword()));
				rs = super.save(u);
			}
		}catch (Exception e){
			logger.error("", e);
			rs.put("status", ResponseCode.ERROR);
			rs.put("msg", e.getMessage());
		}
		return rs;
	}
}