jiangqs
2023-06-30 cbc564a7088503ad8cc7af4e1d2ba417d061e615
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
@@ -1,10 +1,23 @@
package com.ruoyi.system.service.impl.staff;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.domain.dto.MgtStaffEditDto;
import com.ruoyi.system.domain.dto.MgtStaffPageDto;
import com.ruoyi.system.domain.pojo.staff.SysStaff;
import com.ruoyi.system.domain.vo.MgtDeptStaffListVo;
import com.ruoyi.system.domain.vo.MgtStaffPageVo;
import com.ruoyi.system.mapper.staff.SysStaffMapper;
import com.ruoyi.system.service.staff.SysStaffService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.service.sys.ISysUserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -24,6 +37,9 @@
    @Resource
    private SysStaffMapper sysStaffMapper;
    @Resource
    private ISysUserService sysUserService;
    /**
     * @description  获取部门员工列表
     * @author  jqs
@@ -35,4 +51,132 @@
    public List<MgtDeptStaffListVo> listMgtDeptStaff(){
        return sysStaffMapper.listMgtDeptStaff();
    }
    /**
     * @description 通过权限获取部门员工列表
     * @author  jqs
     * @date    2023/6/21 10:24
     * @param userId
     * @return  List<MgtDeptStaffListVo>
     */
    @Override
    public List<MgtDeptStaffListVo>listMgtDeptStaffByPermission(Long userId){
        SysUser sysUser = sysUserService.selectUserById(userId);
        String dataScope = sysUser.getDataScope();
        List<MgtDeptStaffListVo> deptStaffListVoList;
        if(dataScope!=null&&dataScope.equals("4")){
            deptStaffListVoList = sysStaffMapper.listMgtDeptStaffByDept(sysUser.getDeptId(),null);
        }else if(dataScope!=null&&dataScope.equals("5")){
            deptStaffListVoList = sysStaffMapper.listMgtDeptStaffByDept(sysUser.getDeptId(),sysUser.getUserId());
        }else{
            deptStaffListVoList = sysStaffMapper.listMgtDeptStaff();
        }
        return deptStaffListVoList;
    }
    /**
     * @description getBYUserId
     * @param userId
     * @return SysStaff
     * @author jqs34
     * @date 2023/6/18 21:01
     */
    @Override
    public SysStaff getByUserId(Long userId){
        LambdaQueryWrapper<SysStaff> queryWrapper = new LambdaQueryWrapper();
        queryWrapper.eq(SysStaff::getDelFlag,0);
        queryWrapper.eq(SysStaff::getUserId,userId);
        return this.getOne(queryWrapper, false);
    }
    /**
     * @description mgtStaffEdit
     * @param mgtStaffEditDto
     * @return void
     * @author jqs34
     * @date 2023/6/18 20:59
     */
    @Override
    public void mgtStaffEdit(MgtStaffEditDto mgtStaffEditDto){
        SysStaff sysStaff;
        SysUser sysUser;
        LambdaQueryWrapper<SysStaff> queryWrapper = new LambdaQueryWrapper();
        queryWrapper.eq(SysStaff::getDelFlag,0);
        queryWrapper.eq(SysStaff::getStaffMobile,mgtStaffEditDto.getStaffMobile());
        SysStaff sysStaffSame = this.getOne(queryWrapper, false);
        if(StringUtils.isBlank(mgtStaffEditDto.getStaffAvatar())){
            mgtStaffEditDto.setStaffAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
        }
        if(mgtStaffEditDto.getSysUserId()!=null){
            if(sysStaffSame!=null&&!sysStaffSame.getUserId().equals(mgtStaffEditDto.getSysUserId())){
                throw new ServiceException(AppErrorConstant.STAFF_MOBILE_DOUBLE);
            }
            sysStaff = this.getByUserId(mgtStaffEditDto.getSysUserId());
            sysUser = sysUserService.selectUserById(mgtStaffEditDto.getSysUserId());
            sysUser.setUserName(mgtStaffEditDto.getStaffMobile());
            sysUser.setPhonenumber(mgtStaffEditDto.getStaffMobile());
            sysUser.setNickName(mgtStaffEditDto.getStaffName());
            sysUser.setAvatar(mgtStaffEditDto.getStaffAvatar());
            sysUser.setEmail(mgtStaffEditDto.getStaffEmail());
            sysUserService.updateOnlyUser(sysUser);
        }else{
            if(sysStaffSame!=null){
                throw new ServiceException(AppErrorConstant.STAFF_MOBILE_DOUBLE);
            }
            sysStaff = new SysStaff();
            String staffId = IdUtils.simpleUUID();
            sysStaff.setStaffId(staffId);
            sysStaff.setDelFlag(0);
            sysUser = new SysUser();
            sysUser.setDelFlag("0");
            sysUser.setUserType("00");
            sysUser.setUserName(mgtStaffEditDto.getStaffMobile());
            sysUser.setPhonenumber(mgtStaffEditDto.getStaffMobile());
            sysUser.setNickName(mgtStaffEditDto.getStaffName());
            sysUser.setAvatar(mgtStaffEditDto.getStaffAvatar());
            sysUser.setEmail(mgtStaffEditDto.getStaffEmail());
            String password = "123456";
            sysUser.setPassword(SecurityUtils.encryptPassword(password));
            sysUser.setDeptId(mgtStaffEditDto.getDeptId());
            sysUser = sysUserService.registerUser(sysUser);
            sysStaff.setUserId(sysUser.getUserId());
        }
        sysStaff.setStaffName(mgtStaffEditDto.getStaffName());
        sysStaff.setStaffMobile(mgtStaffEditDto.getStaffMobile());
        sysStaff.setStaffEmail(mgtStaffEditDto.getStaffEmail());
        sysStaff.setStaffPost(mgtStaffEditDto.getStaffPost());
        sysStaff.setStaffAvatar(mgtStaffEditDto.getStaffAvatar());
        sysStaff.setHeadFlag(mgtStaffEditDto.getHeadFlag());
        this.saveOrUpdate(sysStaff);
    }
    /**
     * @description mgtDeleteStaff
     * @param mgtBaseGetDto
     * @return void
     * @author jqs34
     * @date 2023/6/18 22:00
     */
    @Override
    public void mgtDeleteStaff(MgtBaseGetDto mgtBaseGetDto){
        Long userId = Long.valueOf(mgtBaseGetDto.getId());
        SysStaff sysStaff = this.getByUserId(userId);
        sysStaff.setDelFlag(1);
        this.saveOrUpdate(sysStaff);
        sysUserService.deleteUserById(mgtBaseGetDto.getUserId());
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/6/25 17:52
     * @param page
     * @param mgtStaffPageDto
     * @return  List<MgtStaffPageVo>
     */
    @Override
    public List<MgtStaffPageVo> pageMgtStaff(Page page, MgtStaffPageDto mgtStaffPageDto){
        return sysStaffMapper.pageMgtStaff(page, mgtStaffPageDto);
    }
}