用户模块开发和部门模块开发涉及到的功能差不多,都是用户的增加,删除,修改,查找全部用户
SysUserService
public interface SysUserService {
void save(UserParam param);
void update(UserParam param);
PageResult<SysUser> getPageByDeptId(int deptId, PageQuery page);
List<SysUser> getAll();
SysUser findByKeyword(String keyword);
}
SysUserServiceImpl
@Service
public class SysUserServiceImpl implements SysUserService {
@Resource
private SysUserMapper sysUserMapper;
@Override
public void save(UserParam param) {
BeanValidator.check(param);
if(checkTelephoneExist(param.getTelephone(), param.getId())) {
throw new BizException("电话已被占用");
}
if(checkEmailExist(param.getMail(), param.getId())) {
throw new BizException("邮箱已被占用");
}
String password = PasswordUtil.randomPassword();
//TODO:
password = "12345678";
String encryptedPassword = MD5Util.encrypt(password);
SysUser user = SysUser.builder().username(param.getUsername()).telephone(param.getTelephone()).mail(param.getMail())
.password(encryptedPassword).deptId(param.getDeptId()).status(param.getStatus()).remark(param.getRemark()).build();
user.setOperator(RequestHolder.getCurrentUser().getUsername());
user.setOperateIp(IPUtil.getIpAddress(RequestHolder.getCurrentRequest()));
user.setOperateTime(new Date());
// TODO: sendEmail
sysUserMapper.insertSelective(user);
// sysLogService.saveUserLog(null, user);
}
@Override
public void update(UserParam param){
BeanValidator.check(param);
if(checkTelephoneExist(param.getTelephone(), param.getId())) {
throw new BizException("电话已被占用");
}
if(checkEmailExist(param.getMail(), param.getId())) {
throw new BizException("邮箱已被占用");
}
SysUser user = sysUserMapper.selectByPrimaryKey(param.getId());
if(ObjectUtil.isNull(user)){
throw new BizException("无此用户");
}
SysUser after = SysUser.builder().id(param.getId()).username(param.getUsername()).telephone(param.getTelephone()).mail(param.getMail())
.deptId(param.getDeptId()).status(param.getStatus()).remark(param.getRemark()).build();
after.setOperator(RequestHolder.getCurrentUser().getUsername());
after.setOperateIp(IPUtil.getIpAddress(RequestHolder.getCurrentRequest()));
after.setOperateTime(new Date());
sysUserMapper.updateByPrimaryKeySelective(after);
}
@Override
public PageResult<SysUser> getPageByDeptId(int deptId, PageQuery page) {
BeanValidator.check(page);
int count = sysUserMapper.countByDeptId(deptId);
if (count > 0) {
List<SysUser> list = sysUserMapper.getPageByDeptId(deptId, page);
return PageResult.<SysUser>builder().total(count).data(list).build();
}
return PageResult.<SysUser>builder().build();
}
public boolean checkEmailExist(String mail, Integer userId) {
return sysUserMapper.countByMail(mail,userId) > 0;
}
public boolean checkTelephoneExist(String telephone, Integer userId) {
return sysUserMapper.countByTelephone(telephone,userId) > 0;
}
@Override
public List<SysUser> getAll() {
return sysUserMapper.getAll();
}
@Override
public SysUser findByKeyword(String keyword) {
return sysUserMapper.findByKeyword(keyword);
}
}