jiangping
2025-01-16 f63d3a3be83fea258e7920efccd2567b6a511bb3
server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
@@ -2,15 +2,18 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Member;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.system.SystemUserJoinMapper;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.dto.QuerySystemUserDTO;
import com.doumee.dao.system.model.SystemDepartment;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.system.vo.SystemDepartmentListVO;
import com.doumee.dao.system.vo.SystemUserListVO;
@@ -31,7 +34,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.Objects;
/**
 * 系统用户Service实现
@@ -112,14 +115,27 @@
    @Override
    public SystemUser findOne(SystemUser systemUser) {
        Wrapper<SystemUser> wrapper = new QueryWrapper<>(systemUser);
        return systemUserMapper.selectOne(wrapper);
        QueryWrapper<SystemUser> wrapper = new QueryWrapper<SystemUser>(systemUser);
        return systemUserMapper.selectOne(wrapper.lambda().last("limit 1"));
    }
    @Override
    public List<SystemUser> findList(SystemUser systemUser) {
        Wrapper<SystemUser> wrapper = new QueryWrapper<>(systemUser);
        return systemUserMapper.selectList(wrapper);
        MPJLambdaWrapper<SystemUser> wrapper = new MPJLambdaWrapper<>();
        wrapper.selectAll(SystemUser.class )
                .selectAs(Company::getName,SystemUser::getCompanyName)
                .eq(SystemUser::getDeleted,Constants.ZERO)
                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
                .eq( systemUser.getCompanyId() !=null,SystemUser::getCompanyId,systemUser.getCompanyId())
                .eq( systemUser.getCompanyType() !=null,Company::getType,systemUser.getCompanyType())
                .like(StringUtils.isNotBlank(systemUser.getRealname()),SystemUser::getRealname,systemUser.getRealname())
                .like(StringUtils.isNotBlank(systemUser.getMobile()),SystemUser::getMobile,systemUser.getMobile())
                .like(StringUtils.isNotBlank(systemUser.getUsername()),SystemUser::getUsername,systemUser.getUsername())
                .like(StringUtils.isNotBlank(systemUser.getCompanyName()),Company::getName,systemUser.getCompanyName())
                .orderByAsc( Company::getPinyin )
                .orderByAsc(SystemUser::getPinyin)
    ;
        return systemUserMapper.selectJoinList(SystemUser.class,wrapper);
    }
    @Override
@@ -139,6 +155,15 @@
            List<Integer> collect = list.stream().map(s -> s.getId()).collect(Collectors.toList());
            pageWrap.getModel().setDepartmentIds(collect);
        }*/
        //查询特殊的42人配置
        if(Objects.nonNull(pageWrap.getModel()) && Constants.equalsInteger(pageWrap.getModel().getQuerySpecial(),Constants.ONE)){
            String companySpecialId = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SPECIAL_COMPANY_ID).getCode();
            if(StringUtils.isNotBlank(companySpecialId)){
                pageWrap.getModel().setCompanySpecialId(companySpecialId);
            }
        }
        // 执行查询
        PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
        List<SystemUserListVO> userList = systemUserMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause());
@@ -149,6 +174,19 @@
//            user.setPositions(systemPositionService.findByUserId(user.getId()));
        }
        return PageData.from(new PageInfo<>(userList));
    }
    @Override
    public PageData<SystemUser> findDriverPage(PageWrap<SystemUser> pageWrap) {
        IPage<SystemUser> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<SystemUser> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.lambda()
                .like(StringUtils.isNotBlank(pageWrap.getModel().getRealname()),SystemUser::getRealname,pageWrap.getModel().getRealname())
                .like(StringUtils.isNotBlank(pageWrap.getModel().getMobile()),SystemUser::getMobile,pageWrap.getModel().getMobile())
                .like(StringUtils.isNotBlank(pageWrap.getModel().getUsername()),SystemUser::getUsername,pageWrap.getModel().getUsername())
                .eq( pageWrap.getModel().getType()!=null,SystemUser::getType,pageWrap.getModel().getType())
                .eq (SystemUser::getDeleted,Constants.ZERO);
        return PageData.from(systemUserMapper.selectPage(page, queryWrapper));
    }
    @Override
@@ -205,20 +243,52 @@
    @Override
    public List<SystemUser> findAllList(SystemUser pageWrap) {
    public List<SystemUser> findAllList(SystemUser systemUser) {
        //查询特殊的42人配置
        if( Constants.equalsInteger(systemUser.getQuerySpecial(),Constants.ONE)){
            String companySpecialId = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SPECIAL_COMPANY_ID).getCode();
            if(StringUtils.isNotBlank(companySpecialId)){
                systemUser.setCompanySpecialId(companySpecialId);
            }
        }
        MPJLambdaWrapper<SystemUser> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap);
        queryWrapper.selectAll(SystemUser.class);
        queryWrapper.eq(SystemUser::getDeleted, Constants.ZERO);
        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getUsername()),ms->ms.like(SystemUser::getUsername,pageWrap.getUsername())
        .or().like(SystemUser::getMobile,pageWrap.getUsername())
                .or().like(SystemUser::getRealname,pageWrap.getUsername())
        );
        queryWrapper.orderByDesc(SystemUser::getCreateTime);
        List<SystemUser> result = systemUserJoinMapper.selectJoinList( SystemUser.class, queryWrapper);
        MPJLambdaWrapper<SystemUser> wrapper = new MPJLambdaWrapper<>();
        wrapper.selectAll(SystemUser.class )
                .selectAs(Company::getCompanyNamePath,SystemUser::getCompanyName)
                .selectAs(Member::getFaceImg,SystemUser::getFaceImg)
                .eq(SystemUser::getDeleted,Constants.ZERO)
                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
                .leftJoin(Member.class,Member::getId,SystemUser::getMemberId)
                .and(StringUtils.isNotBlank(systemUser.getUsername()),ms->ms.like(SystemUser::getUsername,systemUser.getUsername())
                        .or().like(SystemUser::getMobile,systemUser.getUsername())
                        .or().like(SystemUser::getRealname,systemUser.getUsername()))
                .and(StringUtils.isNotBlank(systemUser.getQueryParam()),ms->ms.like(SystemUser::getUsername,systemUser.getUsername())
                        .or().like(SystemUser::getMobile,systemUser.getQueryParam())
                        .or().like(Company::getName,systemUser.getQueryParam())
                        .or().like(SystemUser::getRealname,systemUser.getQueryParam()))
                .eq( systemUser.getCompanyId() !=null,SystemUser::getCompanyId,systemUser.getCompanyId())
                .eq( systemUser.getCompanyType() !=null,Company::getType,systemUser.getCompanyType())
                .eq( systemUser.getWorkStatus() !=null,Member::getWorkStatus,systemUser.getWorkStatus())
                .like(StringUtils.isNotBlank(systemUser.getRealname()),SystemUser::getRealname,systemUser.getRealname())
                .like(StringUtils.isNotBlank(systemUser.getMobile()),SystemUser::getMobile,systemUser.getMobile())
                .like(StringUtils.isNotBlank(systemUser.getUsername()),SystemUser::getUsername,systemUser.getUsername())
                .like(StringUtils.isNotBlank(systemUser.getCompanyName()),Company::getName,systemUser.getCompanyName())
                .apply(StringUtils.isNotBlank(systemUser.getCompanySpecialId())," find_in_set('"+systemUser.getCompanySpecialId()+"',REPLACE(t1.company_path,'/',','))")
                .orderByAsc( Company::getPinyin )
                .orderByAsc(SystemUser::getPinyin)
         ;
        List<SystemUser> result = systemUserJoinMapper.selectJoinList( SystemUser.class, wrapper);
        if(result!=null){
            String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
            for (SystemUser memberInfoDTO:result) {
                //拼接前缀
                if (StringUtils.isNotBlank(memberInfoDTO.getFaceImg())) {
                    memberInfoDTO.setFaceImg(prefixUrl + memberInfoDTO.getFaceImg());
                }
            }
        }
        return result;
    }
@@ -227,5 +297,17 @@
    @Override
    public List<SystemUser> findInternalList() {
        MPJLambdaWrapper<SystemUser> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(SystemUser.class);
        queryWrapper.eq(SystemUser::getDeleted, Constants.ZERO);
        queryWrapper.leftJoin(Company.class,Company::getId,SystemUser::getCompanyId);
        queryWrapper.eq(Company::getType,Constants.ONE);
        queryWrapper.orderByAsc(SystemUser::getPinyin);
        List<SystemUser> result = systemUserJoinMapper.selectJoinList( SystemUser.class, queryWrapper);
        return result;
    }
}