mitao
2025-01-14 4ea102e9177923f091412bd0c261d651c51725b9
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
@@ -12,26 +12,41 @@
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.AppEditUserDto;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.dto.MgtFrozenMemberDto;
import com.ruoyi.system.api.domain.poji.sys.SysDept;
import com.ruoyi.system.api.domain.poji.sys.SysRole;
import com.ruoyi.system.api.domain.poji.sys.SysStaff;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import com.ruoyi.system.api.model.LoginUser;
import com.ruoyi.system.api.model.QwH5LoginVo;
import com.ruoyi.system.api.model.QwUserDetailDto;
import com.ruoyi.system.service.config.SysTagService;
import com.ruoyi.system.service.sys.*;
import com.ruoyi.system.domain.dto.UserMenuEditDto;
import com.ruoyi.system.service.staff.SysStaffService;
import com.ruoyi.system.service.sys.ISysConfigService;
import com.ruoyi.system.service.sys.ISysDeptService;
import com.ruoyi.system.service.sys.ISysPermissionService;
import com.ruoyi.system.service.sys.ISysPostService;
import com.ruoyi.system.service.sys.ISysRoleService;
import com.ruoyi.system.service.sys.ISysUserService;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.Set;
@@ -63,6 +78,45 @@
    @Autowired
    private ISysConfigService configService;
    @Autowired
    private SysStaffService sysStaffService;
    /**
     * 根据部门获取所有员工id
     * @param userId
     * @return
     */
    @GetMapping("/getUserIdsByDept/{userId}")
    public R<List<Long>> getUserIdsByDept(@PathVariable("userId") Long userId)
    {
        SysUser loginSysUser = userService.selectUserById(userId);
        SysUser querySysUser = new SysUser();
        querySysUser.setDelFlag("0");
        querySysUser.setDeptId(loginSysUser.getDeptId());
        List<SysUser> userList = userService.selectUserList(querySysUser);
        List<Long> userIds = userList.stream().map(sysUser->{
            return sysUser.getUserId();
        }).collect(Collectors.toList());
        return R.ok(userIds);
    }
    /**
     * 根据部门id获取用户列表
     * @param deptId
     * @return
     */
    @PostMapping("/getUsersByDeptId")
    R<List<SysUser>> getUsersByDeptId(@RequestBody Long deptId){
        SysUser sysUser = new SysUser();
        sysUser.setDeptId(deptId);
        List<SysUser> sysUsers = userService.selectUserList(sysUser);
        return R.ok(sysUsers);
    }
    /**
     * 获取用户列表
@@ -255,6 +309,9 @@
        {
            return error("当前用户不能删除");
        }
        if(Arrays.stream(userIds).anyMatch((element->element.equals(1L)))){
            throw new ServiceException("禁止删除admin");
        }
        return toAjax(userService.deleteUserByIds(userIds));
    }
@@ -318,7 +375,6 @@
    /**
     * 获取部门树列表
     */
    @RequiresPermissions("system:user:list")
    @GetMapping("/deptTree")
    public AjaxResult deptTree(SysDept dept)
    {
@@ -381,4 +437,65 @@
        return R.ok();
    }
    @ApiOperation(value = "修改用户权限")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE,operContent = "修改用户权限")
    @PostMapping("/editUserMenu")
    public R editUserMenu(@RequestBody UserMenuEditDto userMenuEditDto){
        userService.editUserMenu(userMenuEditDto);
        return R.ok();
    }
    /**
     * @description  冻结用户
     * @author  jqs
     * @date    2023/6/29 17:20
     * @param mgtFrozenMemberDto
     * @return  R<Activeness>
     */
    @PostMapping("/frozenUser")
    public R frozenUser(@RequestBody MgtFrozenMemberDto mgtFrozenMemberDto)
    {
        if(mgtFrozenMemberDto.getId()==1){
            throw new ServiceException("禁止删除admin");
        }
        userService.frozenUser(mgtFrozenMemberDto);
        return R.ok();
    }
    /**
     * @description  员工端登录
     * @author  jqs
     * @date    2023/7/14 10:04
     * @param qwUserDetail
     * @return  R<QwH5LoginVo>
     */
    @PostMapping("/qwH5StaffLogin")
    @ApiOperation(value = "员工端登录")
    public R<QwH5LoginVo> qwH5StaffLogin(@RequestBody QwUserDetailDto qwUserDetail)
    {
        String mobile = qwUserDetail.getMobile();
        SysStaff sysStaff = sysStaffService.getByMobile(mobile);
        if(sysStaff==null){
            throw new ServiceException(AppErrorConstant.USER_NO_SYSTEM);
        }
        Long userId = sysStaff.getUserId();
        SysUser sysUser = userService.selectUserById(userId);
        Optional.ofNullable(sysUser).orElseThrow(() -> new ServiceException("登录失败,未查询到用户"));
        // 构造登录返回信息
        QwH5LoginVo qwH5LoginVo = new QwH5LoginVo();
        qwH5LoginVo.setUserid(qwUserDetail.getUserid());
        qwH5LoginVo.setMobile(qwUserDetail.getMobile());
        qwH5LoginVo.setSysUser(sysUser);
        return R.ok(qwH5LoginVo);
    }
    /**
     * 获取当前用户权限范围内的员工id
     * @return
     */
    @PostMapping("/getScopeOfAuthorityUserId")
    public List<Long> getScopeOfAuthorityUserId(){
        return userService.getScopeOfAuthorityUserId();
    }
}