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.ruoyi.system.service.sys.ISysUserService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 平台员工 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-06-13
|
*/
|
@Service
|
public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> implements SysStaffService {
|
|
@Resource
|
private SysStaffMapper sysStaffMapper;
|
|
@Resource
|
private ISysUserService sysUserService;
|
|
/**
|
* @description 获取部门员工列表
|
* @author jqs
|
* @date 2023/6/13 10:14
|
* @param
|
* @return List<MgtDeptStaffListVo>
|
*/
|
@Override
|
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);
|
}
|
}
|