package com.qmth.ops.biz.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qmth.ops.biz.dao.UserDao; import com.qmth.ops.biz.domain.User; import com.qmth.ops.biz.query.UserQuery; import org.apache.commons.lang3.RandomStringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; @Service public class UserService extends ServiceImpl { @Resource private UserDao userDao; public User findByLoginName(String loginName) { return userDao.selectOne(new LambdaQueryWrapper().eq(User::getLoginName, loginName)); } public User findByExportSecret(String exportSecret) { return userDao.selectOne(new LambdaQueryWrapper().eq(User::getExportSecret, exportSecret)); } @Transactional public User insert(User user) { user.setExportSecret(RandomStringUtils.random(16, true, true)); user.setCreateTime(System.currentTimeMillis()); user.setUpdateTime(user.getCreateTime()); user.setPassword(user.buildPassword(user.getPassword())); userDao.insert(user); return user; } @Transactional public User update(User user) { User previous = userDao.selectById(user.getId()); if (user.getLoginName() != null) { previous.setLoginName(user.getLoginName()); } if (user.getName() != null) { previous.setName(user.getName()); } if (user.getRole() != null && user.getRole().length > 0) { previous.setRole(user.getRole()); } if (user.getPassword() != null) { previous.buildPassword(user.getPassword()); } previous.setUpdateTime(System.currentTimeMillis()); userDao.updateById(previous); return previous; } @Transactional public User changePassword(User user) { User previous = userDao.selectById(user.getId()); previous.buildPassword(user.getPassword()); previous.setUpdateTime(System.currentTimeMillis()); userDao.updateById(previous); return previous; } public IPage query(UserQuery query) { return userDao.selectPage(query, query.build()); } public List list(UserQuery query) { return userDao.selectList(query.build()); } }