liyanqi
2022-09-08 bdf115fc3eec4f95fed6def5f3350b600e1b2b53
ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
@@ -4,22 +4,30 @@
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.bo.AdminUserDetails;
import com.ycl.dto.UmsAdminParam;
import com.ycl.dto.UpdateAdminPasswordParam;
import com.ycl.entity.depart.SccgDepart;
import com.ycl.entity.user.*;
import com.ycl.exception.Asserts;
import com.ycl.mapper.user.UmsAdminLoginLogMapper;
import com.ycl.mapper.user.UmsAdminMapper;
import com.ycl.mapper.user.UmsResourceMapper;
import com.ycl.mapper.user.UmsRoleMapper;
import com.ycl.service.depart.SccgDepartService;
import com.ycl.service.user.UmsAdminCacheService;
import com.ycl.service.user.UmsAdminRoleRelationService;
import com.ycl.service.user.UmsAdminService;
import com.ycl.utils.JwtTokenUtil;
import com.ycl.utils.SpringUtil;
import com.ycl.utils.common.MacUtils;
import com.ycl.utils.common.PojoUtils;
import com.ycl.utils.common.RandomUtils;
import com.ycl.vo.user.UserVO;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@@ -31,6 +39,7 @@
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -60,6 +69,8 @@
    private UmsRoleMapper umsRoleMapper;
    @Resource
    private UmsResourceMapper umsResourceMapper;
    @Resource
    private SccgDepartService sccgDepartService;
    @Override
    public UmsAdmin getAdminByUsername(String username) {
@@ -77,12 +88,14 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public UmsAdmin register(UmsAdminParam umsAdminParam) {
        UmsAdmin umsAdmin = new UmsAdmin();
        //TODO mac,ip,职务,用户类型
        BeanUtils.copyProperties(umsAdminParam, umsAdmin);
        umsAdmin.setCreateTime(new Date());
        umsAdmin.setStatus(1);
        umsAdmin.setMacAddress(MacUtils.getMac());
        //查询是否有相同用户名的用户
        QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(UmsAdmin::getUsername,umsAdmin.getUsername());
@@ -94,6 +107,8 @@
        String encodePassword = passwordEncoder.encode(umsAdmin.getPassword());
        umsAdmin.setPassword(encodePassword);
        baseMapper.insert(umsAdmin);
        umsAdmin.setNickName(RandomUtils.getUserId(umsAdmin.getId()));
        baseMapper.updateById(umsAdmin);
        return umsAdmin;
    }
@@ -122,6 +137,7 @@
    /**
     * 添加登录记录
     *
     * @param username 用户名
     */
    private void insertLoginLog(String username) {
@@ -270,4 +286,32 @@
    public UmsAdminCacheService getCacheService() {
        return SpringUtil.getBean(UmsAdminCacheService.class);
    }
    @Override
    public IPage<UmsAdmin> pageUser(UserVO.PageUserVO pageUserVO) {
        int pageSize = pageUserVO.getPageSize();
        int current = pageUserVO.getCurrent();
        Page<UmsAdmin> page = new Page<>(current, pageSize);
        LambdaQueryWrapper<UmsAdmin> queryWrapper = new LambdaQueryWrapper<>();
        if (StringUtils.isNotBlank(pageUserVO.getJobTitle())) {
            queryWrapper.eq(UmsAdmin::getJobTitle, pageUserVO.getJobTitle());
        }
        if (PojoUtils.Vo.isUsefulSearchParam(pageUserVO.getUserType())) {
            queryWrapper.eq(UmsAdmin::getUserType, pageUserVO.getUserType());
        }
        if (PojoUtils.Vo.isUsefulSearchParam(pageUserVO.getDepartmentId())) {
            queryWrapper.eq(UmsAdmin::getDepartmentId, pageUserVO.getDepartmentId());
        }
        Page<UmsAdmin> page1 = baseMapper.selectPage(page, queryWrapper);
        List<UmsAdmin> records = page1.getRecords();
        if (CollUtil.isNotEmpty(records)) {
            records.forEach(e -> {
                SccgDepart sccgDepart = sccgDepartService.getById(e.getDepartmentId());
                if (null != sccgDepart) {
                    e.setDepartName(sccgDepart.getDepartName());
                }
            });
        }
        return page1;
    }
}